summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-08 00:40:01 +0000
committerDana Jansens <danakj@orodu.net>2007-05-08 00:40:01 +0000
commit5945d2e9c851a03d58ab364fe93136cbe5079c2b (patch)
tree2182a3b6fb01279aedb0b49660f81cd84dce8aea
parent26fc54c9a3d7ef92ef3748b7d4d57e57a71ea798 (diff)
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
-rw-r--r--openbox/event.c11
-rw-r--r--openbox/menuframe.c6
2 files changed, 12 insertions, 5 deletions
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);
}