summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-09-01 11:44:48 -0700
committerJasper St. Pierre <jstpierre@mecheye.net>2014-09-01 11:46:12 -0700
commit604d2155ba7a2a227f3cc7efda1314c9a28fa0ce (patch)
tree67e93c76cbb5b4beda2be9e2ccf99ec12ce04527
parente7727d698ffe77a6c6de69c216f9cf51e58a1245 (diff)
downloadmutter-604d2155ba7a2a227f3cc7efda1314c9a28fa0ce.tar.gz
window: Don't map the client window before placing it
A lot of applications assume that the window is fully positioned when it gets the MapNotify, especially simple applications. Make sure that the window is only mapped through the calc_showing logic.
-rw-r--r--src/core/window.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/core/window.c b/src/core/window.c
index 351b74ada..2436a7684 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -1157,9 +1157,6 @@ _meta_window_shared_new (MetaDisplay *display,
/* disable show desktop mode unless we're a desktop component */
maybe_leave_show_desktop_mode (window);
- if (!window->override_redirect)
- sync_client_window_mapped (window);
-
meta_window_queue (window, META_QUEUE_CALC_SHOWING);
/* See bug 303284; a transient of the given window can already exist, in which
* case we think it should probably be shown.
@@ -1523,9 +1520,6 @@ implement_showing (MetaWindow *window,
meta_verbose ("Implement showing = %d for window %s\n",
showing, window->desc);
- if (!window->override_redirect)
- sync_client_window_mapped (window);
-
if (!showing)
{
/* When we manage a new window, we normally delay placing it
@@ -1541,6 +1535,9 @@ implement_showing (MetaWindow *window,
}
else
meta_window_show (window);
+
+ if (!window->override_redirect)
+ sync_client_window_mapped (window);
}
static void