all repos — openbox @ 5945d2e9c851a03d58ab364fe93136cbe5079c2b

openbox fork - make it a bit more like ryudo

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
Dana Jansens danakj@orodu.net
commit

5945d2e9c851a03d58ab364fe93136cbe5079c2b

parent

26fc54c9a3d7ef92ef3748b7d4d57e57a71ea798

2 files changed, 12 insertions(+), 5 deletions(-)

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

@@ -709,8 +709,15 @@ switch (e->type) {

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) {
M openbox/menuframe.copenbox/menuframe.c

@@ -912,10 +912,10 @@ }

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 @@ menu_frame_visible = g_list_delete_link(menu_frame_visible, it);

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); }