From: Sjoerd Simons Date: Fri, 23 Sep 2016 21:09:39 +0000 (+0200) Subject: wayland/xdg-popup: Force monitor of the top-level X-Git-Tag: archive/raspbian/3.22.2-3+rpi1~5 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c64518cad3128b050e064d5fe15d1127eb6d3107;p=mutter.git 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 https://bugzilla.gnome.org/show_bug.cgi?id=771841 Gbp-Pq: Name wayland-xdg-popup-Force-monitor-of-the-top-level.patch --- 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;