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
This commit is contained in:
parent
26fc54c9a3
commit
5945d2e9c8
2 changed files with 12 additions and 5 deletions
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue