dont let you do mouse events on any animating window. also fix root window mouse events..
This commit is contained in:
parent
378adaa94f
commit
b114ec7181
1 changed files with 14 additions and 3 deletions
|
@ -810,8 +810,19 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
||||||
e->xconfigurerequest.detail = ce.xconfigurerequest.detail;
|
e->xconfigurerequest.detail = ce.xconfigurerequest.detail;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if we are iconic (or shaded (fvwm does this)) ignore the event */
|
ob_debug("ConfigureRequest desktop %d wmstate %d vis %d\n",
|
||||||
if (client->iconic || client->shaded) return;
|
screen_desktop, client->wmstate, client->frame->visible);
|
||||||
|
|
||||||
|
/* If the client is in IconicState then ignore the event.
|
||||||
|
This used to only ignore iconic or shaded windows, but windows on
|
||||||
|
other desktops are also in IconicState, so now those can't
|
||||||
|
send ConfigureRequests either..
|
||||||
|
This fixes the bug of KDE apps moving when they try to active them-
|
||||||
|
selves on another desktop.
|
||||||
|
It used to say "fvwm does this" but I'm not sure if fvwm does
|
||||||
|
this for windows on other desktops too. Probably, it makes sense.
|
||||||
|
*/
|
||||||
|
if (client->wmstate == IconicState) return;
|
||||||
|
|
||||||
/* resize, then move, as specified in the EWMH section 7.7 */
|
/* resize, then move, as specified in the EWMH section 7.7 */
|
||||||
if (e->xconfigurerequest.value_mask & (CWWidth | CWHeight |
|
if (e->xconfigurerequest.value_mask & (CWWidth | CWHeight |
|
||||||
|
@ -1386,7 +1397,7 @@ static void event_handle_user_input(ObClient *client, XEvent *e)
|
||||||
{
|
{
|
||||||
/* the frame may not be "visible" but they can still click on it
|
/* the frame may not be "visible" but they can still click on it
|
||||||
in the case where it is animating before disappearing */
|
in the case where it is animating before disappearing */
|
||||||
if (client && client->frame->visible)
|
if (!client || !frame_iconify_animating(client->frame))
|
||||||
mouse_event(client, e);
|
mouse_event(client, e);
|
||||||
} else if (e->type == KeyPress) {
|
} else if (e->type == KeyPress) {
|
||||||
keyboard_event((focus_cycle_target ? focus_cycle_target :
|
keyboard_event((focus_cycle_target ? focus_cycle_target :
|
||||||
|
|
Loading…
Reference in a new issue