[metacity] window: don't ever send ConfigureNotifies for OR windows
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] window: don't ever send ConfigureNotifies for OR windows
- Date: Tue, 28 Feb 2017 13:31:02 +0000 (UTC)
commit 84843abc3d1a205f36b84b3f424dbe4ccae65092
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Tue Jun 3 11:28:40 2014 -0400
window: don't ever send ConfigureNotifies for OR windows
There's a race here. If an OR window hides itself, moves, and then shows
itself, we will send a ConfigureNotify for the old size of the window
and might receive it after the client moves itself, causing us to show
the window at the wrong location.
Simply not sending the ConfigureNotify is the easiest thing to do.
src/core/window.c | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/src/core/window.c b/src/core/window.c
index 3c6914e..3a582b2 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1110,12 +1110,6 @@ meta_window_free (MetaWindow *window,
if (window->maximized_horizontally || window->maximized_vertically)
unmaximize_window_before_freeing (window);
- /* The XReparentWindow call in meta_window_destroy_frame() moves the
- * window so we need to send a configure notify; see bug 399552. (We
- * also do this just in case a window got unmaximized.)
- */
- send_configure_notify (window);
-
meta_window_unqueue (window, META_QUEUE_CALC_SHOWING |
META_QUEUE_MOVE_RESIZE |
META_QUEUE_UPDATE_ICON);
@@ -1143,7 +1137,15 @@ meta_window_free (MetaWindow *window,
meta_stack_remove (window->screen->stack, window);
if (window->frame)
- meta_window_destroy_frame (window);
+ {
+ /* The XReparentWindow call in meta_window_destroy_frame() moves the
+ * window so we need to send a configure notify; see bug 399552. (We
+ * also do this just in case a window got unmaximized.)
+ */
+ send_configure_notify (window);
+
+ meta_window_destroy_frame (window);
+ }
/* If an undecorated window is being withdrawn, that will change the
* stack as presented to the compositing manager, without actually
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]