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 ButtonPress:
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
/* Wheel buttons don't draw because they are an instant click, so it
|
/* Wheel buttons don't draw because they are an instant click, so it
|
||||||
is a waste of resources to go drawing it. */
|
is a waste of resources to go drawing it.
|
||||||
if (!(e->xbutton.button == 4 || e->xbutton.button == 5)) {
|
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 = frame_context(client, e->xbutton.window);
|
||||||
con = mouse_button_frame_context(con, e->xbutton.button);
|
con = mouse_button_frame_context(con, e->xbutton.button);
|
||||||
switch (con) {
|
switch (con) {
|
||||||
|
|
|
@ -912,10 +912,10 @@ static gboolean menu_frame_show(ObMenuFrame *self)
|
||||||
|
|
||||||
if (menu_frame_visible == NULL) {
|
if (menu_frame_visible == NULL) {
|
||||||
/* no menus shown yet */
|
/* no menus shown yet */
|
||||||
if (!grab_pointer(TRUE, FALSE, OB_CURSOR_POINTER))
|
if (!grab_pointer(TRUE, TRUE, OB_CURSOR_POINTER))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (!grab_keyboard(TRUE)) {
|
if (!grab_keyboard(TRUE)) {
|
||||||
grab_pointer(FALSE, FALSE, OB_CURSOR_POINTER);
|
grab_pointer(FALSE, TRUE, OB_CURSOR_POINTER);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1024,7 +1024,7 @@ void menu_frame_hide(ObMenuFrame *self)
|
||||||
|
|
||||||
if (menu_frame_visible == NULL) {
|
if (menu_frame_visible == NULL) {
|
||||||
/* last menu shown */
|
/* last menu shown */
|
||||||
grab_pointer(FALSE, FALSE, OB_CURSOR_NONE);
|
grab_pointer(FALSE, TRUE, OB_CURSOR_NONE);
|
||||||
grab_keyboard(FALSE);
|
grab_keyboard(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue