[mutter/wip/carlosg/crossings: 7/9] compositor: Trigger repick after window effects here




commit 1563be04042966c44abd46236790f19a8033c503
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Dec 22 18:22:43 2020 +0100

    compositor: Trigger repick after window effects here
    
    Just because of implementation details, this is only relevant to Wayland,
    and is done via ::effects-completed handlers there. Ideally, Clutter should
    notice by itself about effects starting, finishing, and affecting picking.
    Doing this in generic code seems slightly cleaner in the interim.

 src/compositor/meta-window-actor.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/src/compositor/meta-window-actor.c b/src/compositor/meta-window-actor.c
index 5eb37a9e92..1273ff422f 100644
--- a/src/compositor/meta-window-actor.c
+++ b/src/compositor/meta-window-actor.c
@@ -659,16 +659,24 @@ meta_window_actor_after_effects (MetaWindowActor *self)
 {
   MetaWindowActorPrivate *priv =
     meta_window_actor_get_instance_private (self);
+  ClutterStage *stage;
+  ClutterSeat *seat;
+
+  stage = CLUTTER_STAGE (clutter_actor_get_stage (CLUTTER_ACTOR (self)));
+  seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
 
   if (priv->needs_destroy)
     {
       clutter_actor_destroy (CLUTTER_ACTOR (self));
-      return;
+    }
+  else
+    {
+      g_signal_emit (self, signals[EFFECTS_COMPLETED], 0);
+      meta_window_actor_sync_visibility (self);
+      meta_window_actor_sync_actor_geometry (self, FALSE);
     }
 
-  g_signal_emit (self, signals[EFFECTS_COMPLETED], 0);
-  meta_window_actor_sync_visibility (self);
-  meta_window_actor_sync_actor_geometry (self, FALSE);
+  clutter_stage_repick_device (stage, clutter_seat_get_pointer (seat));
 }
 
 void


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