summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-09 18:48:56 -0500
committerMikael Magnusson <mikachu@comhem.se>2008-02-14 19:39:17 +0100
commit38bef0a38bf907a54c193ab063b4830788398edc (patch)
treec1825249fa822207d12d0d8144608a410869441b /openbox/client.c
parentc907f5af4ad16b1b0ddcf9a17e1a196a079dd09a (diff)
Make a pending ReplayPointer happen before moving/showing/hiding a window in an action.
Commit c907f5af4ad16b1 broke kdesktop again, so we have to fix it at an even finer level.
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c
index e7290ca5..43a2f551 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -2572,6 +2572,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;
@@ -2613,6 +2617,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;
@@ -3028,6 +3036,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)