diff options
author | Jonas Dreßler <verdre@v0yd.nl> | 2020-07-07 16:49:31 +0200 |
---|---|---|
committer | Robert Mader <robert.mader@posteo.de> | 2020-08-29 12:40:11 +0000 |
commit | 0b9a71ea3cb9c752e5748d002b45fd4cdfbf37dc (patch) | |
tree | ff6cc8c92f4ab8c8e9a7566d8b366020cd3071b9 /src/wayland | |
parent | 35f847ac6dc237c23344038294fc0395ce40f718 (diff) | |
download | mutter-0b9a71ea3cb9c752e5748d002b45fd4cdfbf37dc.tar.gz |
wayland/surface: Don't update outputs recursively on mapped changes
There's no need to update the outputs recursively in case the actor gets
mapped or unmapped. That's because mapping happens recursively itself,
so if a window with multiple subsurfaces is shown, all subsurfaces will
receive a "notify::mapped" signal.
Since this was the only remaining user of
meta_wayland_surface_update_outputs_recursively(), we can now remove
that function.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1358
Diffstat (limited to 'src/wayland')
-rw-r--r-- | src/wayland/meta-wayland-actor-surface.c | 5 | ||||
-rw-r--r-- | src/wayland/meta-wayland-surface.c | 11 | ||||
-rw-r--r-- | src/wayland/meta-wayland-surface.h | 2 |
3 files changed, 1 insertions, 17 deletions
diff --git a/src/wayland/meta-wayland-actor-surface.c b/src/wayland/meta-wayland-actor-surface.c index 5d4478253..ed7c45411 100644 --- a/src/wayland/meta-wayland-actor-surface.c +++ b/src/wayland/meta-wayland-actor-surface.c @@ -74,9 +74,6 @@ 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, - surface); - g_signal_handlers_disconnect_by_func (priv->actor, meta_wayland_surface_update_outputs, surface); g_clear_object (&priv->actor); @@ -446,7 +443,7 @@ 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), diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index 88e84b396..d1894a8cc 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -1296,17 +1296,6 @@ meta_wayland_surface_update_outputs (MetaWaylandSurface *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) { g_signal_emit (surface, surface_signals[SURFACE_UNMAPPED], 0); diff --git a/src/wayland/meta-wayland-surface.h b/src/wayland/meta-wayland-surface.h index c9ed38e30..0c7298886 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); |