diff --git a/src/core/window-private.h b/src/core/window-private.h index 5c8ed98c0..0b667fb8f 100644 --- a/src/core/window-private.h +++ b/src/core/window-private.h @@ -531,7 +531,8 @@ struct _MetaWindowClass cairo_surface_t **icon, cairo_surface_t **mini_icon); uint32_t (*get_client_pid) (MetaWindow *window); - void (*update_main_monitor) (MetaWindow *window); + void (*update_main_monitor) (MetaWindow *window, + gboolean user_op); void (*main_monitor_changed) (MetaWindow *window, const MetaLogicalMonitor *old); }; diff --git a/src/core/window.c b/src/core/window.c index 68d5bcb67..fa01e57c1 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -3603,7 +3603,7 @@ meta_window_update_monitor (MetaWindow *window, const MetaLogicalMonitor *old; old = window->monitor; - META_WINDOW_GET_CLASS (window)->update_main_monitor (window); + META_WINDOW_GET_CLASS (window)->update_main_monitor (window, user_op); if (old != window->monitor) { meta_window_on_all_workspaces_changed (window); diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c index 6ae57d13e..efe299fe3 100644 --- a/src/wayland/meta-window-wayland.c +++ b/src/wayland/meta-window-wayland.c @@ -350,7 +350,8 @@ scale_rect_size (MetaRectangle *rect, } static void -meta_window_wayland_update_main_monitor (MetaWindow *window) +meta_window_wayland_update_main_monitor (MetaWindow *window, + gboolean user_op) { MetaBackend *backend = meta_get_backend (); MetaMonitorManager *monitor_manager = @@ -370,6 +371,7 @@ meta_window_wayland_update_main_monitor (MetaWindow *window) toplevel_window = meta_wayland_surface_get_toplevel_window (window->surface); if (toplevel_window != window) { + meta_window_update_monitor (toplevel_window, user_op); window->monitor = toplevel_window->monitor; return; } diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index fafa9296d..07f09223e 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -1456,7 +1456,8 @@ meta_window_x11_update_icon (MetaWindow *window, } static void -meta_window_x11_update_main_monitor (MetaWindow *window) +meta_window_x11_update_main_monitor (MetaWindow *window, + gboolean user_op) { window->monitor = meta_window_calculate_main_logical_monitor (window); }