all repos — openbox @ 9e44bed8b88299295f1341f17f3ae9a9ba6e0925

openbox fork - make it a bit more like ryudo

stop ignoring enters on window hide, and explain why
Dana Jansens danakj@orodu.net
commit

9e44bed8b88299295f1341f17f3ae9a9ba6e0925

parent

4b3b71c54eb21c23cdb64b8abc8e93a732282f75

1 files changed, 12 insertions(+), 6 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -2469,7 +2469,6 @@

gboolean client_hide(ObClient *self) { gboolean hide = FALSE; - gulong ignore_start; if (!client_should_show(self)) { if (self == focus_client) {

@@ -2483,14 +2482,21 @@ */

event_cancel_all_key_grabs(); } - if (!config_focus_under_mouse) - ignore_start = event_start_ignore_all_enters(); + /* We don't need to ignore enter events here. + The window can hide/iconify in 3 different ways: + 1 - through an x message. in this case we ignore all enter events + caused by responding to the x message (unless underMouse) + 2 - by a keyboard action. in this case we ignore all enter events + caused by the action + 3 - by a mouse action. in this case they are doing stuff with the + mouse and focus _should_ move. + + Also in action_end, we simulate an enter event that can't be ignored + so trying to ignore them is futile in case 3 anyways + */ frame_hide(self->frame); hide = TRUE; - - if (!config_focus_under_mouse) - event_end_ignore_all_enters(ignore_start); /* According to the ICCCM (sec 4.1.3.1) when a window is not visible, it needs to be in IconicState. This includes when it is on another