[mutter/gnome-3-22] wayland/xdg-popup: Force monitor of the top-level



commit a15d61ba9b73eb938d5f47c3480722227413adf2
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date:   Fri Sep 23 23:09:39 2016 +0200

    wayland/xdg-popup: Force monitor of the top-level
    
    Directly set the monitor of the toplevel window for the popup to avoid
    the change not being applied due to later constraints calculation.
    
    Signed-off-by: Sjoerd Simons <sjoerd simons collabora co uk>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771841

 src/wayland/meta-window-wayland.c |   19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)
---
diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c
index fd630ca..a497dec 100644
--- a/src/wayland/meta-window-wayland.c
+++ b/src/wayland/meta-window-wayland.c
@@ -348,18 +348,17 @@ meta_window_wayland_update_main_monitor (MetaWindow *window)
   toplevel_window = meta_wayland_surface_get_toplevel_window (window->surface);
   if (toplevel_window != window)
     {
-      to = toplevel_window->monitor;
-    }
-  else
-    {
-      /* Require both the current and the new monitor would be the new main monitor,
-       * even given the resulting scale the window would end up having. This is
-       * needed to avoid jumping back and forth between the new and the old, since
-       * changing main monitor may cause the window to be resized so that it no
-       * longer have that same new main monitor. */
-      to = meta_screen_calculate_monitor_for_window (window->screen, window);
+      window->monitor = toplevel_window->monitor;
+      return;
     }
 
+  /* Require both the current and the new monitor would be the new main monitor,
+   * even given the resulting scale the window would end up having. This is
+   * needed to avoid jumping back and forth between the new and the old, since
+   * changing main monitor may cause the window to be resized so that it no
+   * longer have that same new main monitor. */
+  to = meta_screen_calculate_monitor_for_window (window->screen, window);
+
   if (from == to)
     return;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]