X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Faction.c;h=5237936e482eafbfdaeadb422f426211fffe8cdd;hb=9752670920352bdd721d9958370edc569481d9e6;hp=b01f9d3e59298c6bf54db472377acf0dcb00ecbb;hpb=3addcd8bb9c65db54c43d6c829c2b041e4959ca9;p=chaz%2Fopenbox diff --git a/openbox/action.c b/openbox/action.c index b01f9d3e..5237936e 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -38,19 +38,16 @@ #include -inline void client_action_start(union ActionData *data) +static void client_action_start(union ActionData *data) { - if (config_focus_follow) - if (data->any.context != OB_FRAME_CONTEXT_CLIENT && !data->any.button) - grab_pointer(FALSE, FALSE, OB_CURSOR_NONE); } -inline void client_action_end(union ActionData *data) +static void client_action_end(union ActionData *data) { if (config_focus_follow) if (data->any.context != OB_FRAME_CONTEXT_CLIENT) { - if (!data->any.button) { - ungrab_pointer(); + if (!data->any.button && data->any.c) { + event_ignore_all_queued_enters(); } else { ObClient *c; @@ -1141,7 +1138,13 @@ void action_run_list(GSList *acts, ObClient *c, ObFrameContext context, /* XXX UGLY HACK race with motion event starting a move and the button release gettnig processed first. answer: don't queue - moveresize starts. UGLY HACK XXX */ + moveresize starts. UGLY HACK XXX + + XXX ALSO don't queue showmenu events, because on button press + events we need to know if a mouse grab is going to take place, + and set the button to 0, so that later motion events don't think + that a drag is going on. since showmenu grabs the pointer.. + */ if (a->data.any.interactive || a->func == action_move || a->func == action_resize || a->func == action_showmenu) {