diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c index 47b3c1c3e2f8e8ac6b8c9205eba4162eb57bfc9f..ed7c45411ef2629d9407a7d4b514a7046f248cf7 100644 --- a/src/wayland/meta-wayland-actor-surface.c +++ b/src/wayland/meta-wayland-actor-surface.c @@ -74,7 +74,7 @@ clear_surface_actor (MetaWaylandActorSurface *actor_surface) meta_wayland_surface_notify_geometry_changed, surface); g_signal_handlers_disconnect_by_func (priv->actor, - meta_wayland_surface_update_outputs_recursively, + meta_wayland_surface_update_outputs, surface); g_clear_object (&priv->actor); } @@ -443,6 +443,9 @@ meta_wayland_actor_surface_reset_actor (MetaWaylandActorSurface *actor_surface) G_CALLBACK (meta_wayland_surface_notify_geometry_changed), surface); g_signal_connect_swapped (priv->actor, "notify::mapped", - G_CALLBACK (meta_wayland_surface_update_outputs_recursively), + G_CALLBACK (meta_wayland_surface_update_outputs), + surface); + g_signal_connect_swapped (priv->actor, "stage-views-changed", + G_CALLBACK (meta_wayland_surface_update_outputs), surface); } diff --git a/src/wayland/meta-wayland-shell-surface.c b/src/wayland/meta-wayland-shell-surface.c index 12d291043d5fb34ee617aa47281187ec5a9b02df..7bad43f34d0b61626dff7305ee2be181c5a54ba5 100644 --- a/src/wayland/meta-wayland-shell-surface.c +++ b/src/wayland/meta-wayland-shell-surface.c @@ -37,7 +37,6 @@ typedef struct _MetaWaylandShellSurfacePrivate MetaWindow *window; gulong unmanaging_handler_id; - gulong position_changed_handler_id; gulong effects_completed_handler_id; } MetaWaylandShellSurfacePrivate; @@ -107,8 +106,6 @@ clear_window (MetaWaylandShellSurface *shell_surface) g_clear_signal_handler (&priv->unmanaging_handler_id, priv->window); - g_clear_signal_handler (&priv->position_changed_handler_id, - priv->window); g_clear_signal_handler (&priv->effects_completed_handler_id, meta_window_actor_from_window (priv->window)); priv->window = NULL; @@ -127,18 +124,10 @@ window_unmanaging (MetaWindow *window, clear_window (shell_surface); } -static void -window_position_changed (MetaWindow *window, - MetaWaylandSurface *surface) -{ - meta_wayland_surface_update_outputs_recursively (surface); -} - static void window_actor_effects_completed (MetaWindowActor *window_actor, MetaWaylandSurface *surface) { - meta_wayland_surface_update_outputs_recursively (surface); meta_wayland_compositor_repick (surface->compositor); } @@ -167,11 +156,6 @@ meta_wayland_shell_surface_set_window (MetaWaylandShellSurface *shell_surface, "unmanaging", G_CALLBACK (window_unmanaging), shell_surface); - priv->position_changed_handler_id = - g_signal_connect (window, - "position-changed", - G_CALLBACK (window_position_changed), - surface); priv->effects_completed_handler_id = g_signal_connect (meta_window_actor_from_window (window), "effects-completed", diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index edc2eb772bc38c6753876dd2567809a3f21e5669..d1894a8cc43251f8a38d44f9641f986dfbe5cff5 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -1295,17 +1295,6 @@ meta_wayland_surface_update_outputs (MetaWaylandSurface *surface) surface); } -void -meta_wayland_surface_update_outputs_recursively (MetaWaylandSurface *surface) -{ - MetaWaylandSurface *subsurface_surface; - - meta_wayland_surface_update_outputs (surface); - - META_WAYLAND_SURFACE_FOREACH_SUBSURFACE (surface, subsurface_surface) - meta_wayland_surface_update_outputs_recursively (subsurface_surface); -} - void meta_wayland_surface_notify_unmapped (MetaWaylandSurface *surface) { @@ -1613,10 +1602,6 @@ meta_wayland_surface_init (MetaWaylandSurface *surface) surface->subsurface_branch_node = g_node_new (surface); surface->subsurface_leaf_node = g_node_prepend_data (surface->subsurface_branch_node, surface); - - g_signal_connect (surface, "geometry-changed", - G_CALLBACK (meta_wayland_surface_update_outputs_recursively), - NULL); } static void diff --git a/src/wayland/meta-wayland-surface.h b/src/wayland/meta-wayland-surface.h index c9ed38e306dbb020c90cd4cf8d6d6c17dbf821ac..0c7298886d861dd3ae2dabbca143bfc2ea95ba82 100644 --- a/src/wayland/meta-wayland-surface.h +++ b/src/wayland/meta-wayland-surface.h @@ -336,8 +336,6 @@ void meta_wayland_surface_notify_subsurface_state_changed (MetaWa void meta_wayland_surface_notify_unmapped (MetaWaylandSurface *surface); -void meta_wayland_surface_update_outputs_recursively (MetaWaylandSurface *surface); - int meta_wayland_surface_get_width (MetaWaylandSurface *surface); int meta_wayland_surface_get_height (MetaWaylandSurface *surface); diff --git a/src/wayland/meta-xwayland-surface.c b/src/wayland/meta-xwayland-surface.c index c8625f414c9f0075d5dffc5f73c2d98fb6469891..11f58012724e0182298d9b7f144e78df56ab3bd2 100644 --- a/src/wayland/meta-xwayland-surface.c +++ b/src/wayland/meta-xwayland-surface.c @@ -44,7 +44,6 @@ struct _MetaXwaylandSurface MetaWindow *window; gulong unmanaging_handler_id; - gulong position_changed_handler_id; gulong effects_completed_handler_id; }; @@ -67,8 +66,6 @@ clear_window (MetaXwaylandSurface *xwayland_surface) g_clear_signal_handler (&xwayland_surface->unmanaging_handler_id, xwayland_surface->window); - g_clear_signal_handler (&xwayland_surface->position_changed_handler_id, - xwayland_surface->window); window_actor = meta_window_actor_from_window (xwayland_surface->window); g_clear_signal_handler (&xwayland_surface->effects_completed_handler_id, @@ -91,18 +88,10 @@ window_unmanaging (MetaWindow *window, clear_window (xwayland_surface); } -static void -window_position_changed (MetaWindow *window, - MetaWaylandSurface *surface) -{ - meta_wayland_surface_update_outputs_recursively (surface); -} - static void window_actor_effects_completed (MetaWindowActor *window_actor, MetaWaylandSurface *surface) { - meta_wayland_surface_update_outputs_recursively (surface); meta_wayland_compositor_repick (surface->compositor); } @@ -142,11 +131,6 @@ meta_xwayland_surface_associate_with_window (MetaXwaylandSurface *xwayland_surfa "unmanaging", G_CALLBACK (window_unmanaging), xwayland_surface); - xwayland_surface->position_changed_handler_id = - g_signal_connect (window, - "position-changed", - G_CALLBACK (window_position_changed), - surface); xwayland_surface->effects_completed_handler_id = g_signal_connect (meta_window_actor_from_window (window), "effects-completed",