[mutter] window/wayland: Always update monitor for non-user ops



commit a3da4b8d5bd217c0262fd9361036877d155a300f
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Mon Jun 18 12:39:11 2018 +0200

    window/wayland: Always update monitor for non-user ops
    
    meta_window_wayland_update_main_monitor() would skip the monitor update
    if the difference in scale between the old and the new monitor would
    cause another monitor change.
    
    While this is suitable when the monitor change results from a user
    interactively moving the surface between monitors of different scales,
    this can leave dangling pointers to freed monitors when this is
    triggered by a change of monitor configuration.
    
    Make sure we update the monitor unconditionally if not from a user
    operation.
    
    Closes: https://gitlab.gnome.org/GNOME/mutter/issues/189

 src/wayland/meta-window-wayland.c | 6 ++++++
 1 file changed, 6 insertions(+)
---
diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c
index 260bd2d14..601ea1b20 100644
--- a/src/wayland/meta-window-wayland.c
+++ b/src/wayland/meta-window-wayland.c
@@ -413,6 +413,12 @@ meta_window_wayland_update_main_monitor (MetaWindow *window,
       return;
     }
 
+  if (!user_op)
+    {
+      window->monitor = to;
+      return;
+    }
+
   from_scale = meta_logical_monitor_get_scale (from);
   to_scale = meta_logical_monitor_get_scale (to);
 


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