From 20fb046e2cba6e70209a459b390fd4e019a42bf1 Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Fri, 20 Nov 2015 10:45:43 +0000 Subject: [PATCH] #846: when the window is not shown, send all the geometry updates to the client without delay git-svn-id: https://xpra.org/svn/Xpra/trunk@11302 3bb7dfac-3a0b-4e04-842a-767bc560f471 --- src/xpra/x11/server.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/xpra/x11/server.py b/src/xpra/x11/server.py index 4b1b2ab285..dcb27cbca2 100644 --- a/src/xpra/x11/server.py +++ b/src/xpra/x11/server.py @@ -530,6 +530,9 @@ def _window_resized_signaled(self, window, *args): return self._desktop_manager.update_window_geometry(window, x, y, nw, nh) lcce = self.last_client_configure_event + if not self._desktop_manager.is_shown(window): + self.size_notify_clients(window) + return if self.snc_timer>0: glib.source_remove(self.snc_timer) #TODO: find a better way to choose the timer delay: @@ -538,14 +541,14 @@ def _window_resized_signaled(self, window, *args): delay = max(100, min(250, 250 + 1000 * (lcce-time.time()))) self.snc_timer = glib.timeout_add(int(delay), self.size_notify_clients, window, lcce) - def size_notify_clients(self, window, lcce): + def size_notify_clients(self, window, lcce=-1): geomlog("size_notify_clients(%s, %s) last_client_configure_event=%s", window, lcce, self.last_client_configure_event) self.snc_timer = 0 wid = self._window_to_id.get(window) if not wid: geomlog("size_notify_clients: window is gone") return - if lcce!=self.last_client_configure_event: + if lcce>0 and lcce!=self.last_client_configure_event: geomlog("size_notify_clients: we have received a new client resize since") return x, y, nw, nh = self._desktop_manager.window_geometry(window)