From: Dana Jansens Date: Tue, 8 May 2007 00:40:01 +0000 (+0000) Subject: ok, so, back out the last commit. owner events are passed thru so we get enter/leave... X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=5945d2e9c851a03d58ab364fe93136cbe5079c2b;p=chaz%2Fopenbox ok, so, back out the last commit. owner events are passed thru so we get enter/leave notify events. dont change frame decor from button presses during an interactive grab or while a menu is open --- diff --git a/openbox/event.c b/openbox/event.c index bb6a42f9..a3ca5585 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -709,8 +709,15 @@ static void event_handle_client(ObClient *client, XEvent *e) case ButtonPress: case ButtonRelease: /* Wheel buttons don't draw because they are an instant click, so it - is a waste of resources to go drawing it. */ - if (!(e->xbutton.button == 4 || e->xbutton.button == 5)) { + is a waste of resources to go drawing it. + if the user is doing an intereactive thing, or has a menu open then + the mouse is grabbed (possibly) and if we get these events we don't + want to deal with them + */ + if (!(e->xbutton.button == 4 || e->xbutton.button == 5) && + !keyboard_interactively_grabbed() && + !menu_frame_visible) + { con = frame_context(client, e->xbutton.window); con = mouse_button_frame_context(con, e->xbutton.button); switch (con) { diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 461a2f2a..768176ab 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -912,10 +912,10 @@ static gboolean menu_frame_show(ObMenuFrame *self) if (menu_frame_visible == NULL) { /* no menus shown yet */ - if (!grab_pointer(TRUE, FALSE, OB_CURSOR_POINTER)) + if (!grab_pointer(TRUE, TRUE, OB_CURSOR_POINTER)) return FALSE; if (!grab_keyboard(TRUE)) { - grab_pointer(FALSE, FALSE, OB_CURSOR_POINTER); + grab_pointer(FALSE, TRUE, OB_CURSOR_POINTER); return FALSE; } } @@ -1024,7 +1024,7 @@ void menu_frame_hide(ObMenuFrame *self) if (menu_frame_visible == NULL) { /* last menu shown */ - grab_pointer(FALSE, FALSE, OB_CURSOR_NONE); + grab_pointer(FALSE, TRUE, OB_CURSOR_NONE); grab_keyboard(FALSE); }