diff options
| author | Dana Jansens <danakj@orodu.net> | 2008-02-09 18:48:56 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2008-02-09 19:02:48 -0500 |
| commit | 969c2482ce054a9ca1caa40825d615dd496e1429 (patch) | |
| tree | c94d81c10b94bac8d6ec2a4d6ce712c754e126cc /openbox/client.c | |
| parent | 10cabdfe8570963bd0ed12c4aca8ad469ba3d4ea (diff) | |
commit d9d580e0382 broke kdesktop again, so we have to fix it at an even finer level. make a pending ReplayPointer happen before moving/showing/hiding a window in an action
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c index a54feb8b..dd1f5e72 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -2510,6 +2510,10 @@ gboolean client_show(ObClient *self) gboolean show = FALSE; if (client_should_show(self)) { + /* replay pending pointer event before showing the window, in case it + should be going to something under the window */ + mouse_replay_pointer(); + frame_show(self->frame); show = TRUE; @@ -2551,6 +2555,10 @@ gboolean client_hide(ObClient *self) so trying to ignore them is futile in case 3 anyways */ + /* replay pending pointer event before hiding the window, in case it + should be going to the window */ + mouse_replay_pointer(); + frame_hide(self->frame); hide = TRUE; @@ -2966,6 +2974,10 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h, if (!user) ignore_start = event_start_ignore_all_enters(); + /* replay pending pointer event before move the window, in case it + would change what window gets the event */ + mouse_replay_pointer(); + frame_adjust_area(self->frame, fmoved, fresized, FALSE); if (!user) |
