X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=43a2f551f8252d2f5aec58faa2570690ecd4527c;hb=619fd7e666944aa83c636d14cd2777cbd5dc1094;hp=e7290ca51135b3f874a5d6f5ce7622b968ab7638;hpb=b1d4bbdb54bd4525692745bf5267765adcf8cc3e;p=chaz%2Fopenbox 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)