summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-05 17:04:22 +0000
committerDana Jansens <danakj@orodu.net>2007-05-05 17:04:22 +0000
commitb114ec71813a666f20b38b6086e0a50d12dc6c29 (patch)
tree93aaa4762373d6ba59279e57a283499fa1085eb4
parent378adaa94f0fac07dc65f0531e950c7ec8944cdf (diff)
dont let you do mouse events on any animating window. also fix root window mouse events..
-rw-r--r--openbox/event.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/openbox/event.c b/openbox/event.c
index 49e1cc06..793a6fcd 100644
--- a/openbox/event.c
+++ b/openbox/event.c
@@ -810,8 +810,19 @@ static void event_handle_client(ObClient *client, XEvent *e)
e->xconfigurerequest.detail = ce.xconfigurerequest.detail;
}
- /* if we are iconic (or shaded (fvwm does this)) ignore the event */
- if (client->iconic || client->shaded) return;
+ ob_debug("ConfigureRequest desktop %d wmstate %d vis %d\n",
+ 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 */
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
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);
} else if (e->type == KeyPress) {
keyboard_event((focus_cycle_target ? focus_cycle_target :