From 05b6b6a88de246dcdde177b3dc0da763b413fb99 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 16 Oct 2020 10:02:56 -0300 Subject: [PATCH] clutter/actor: Use pick context in clutter_actor_should_pick_paint() Pass the ClutterPickContext to clutter_actor_should_pick_paint() and check the pick mode from it. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1509 --- clutter/clutter/clutter-actor.c | 8 +++++--- clutter/clutter/clutter-actor.h | 3 ++- src/compositor/meta-surface-actor.c | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index 08031cb4a..c94dab8a2 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -2311,7 +2311,7 @@ static void clutter_actor_real_pick (ClutterActor *self, ClutterPickContext *pick_context) { - if (clutter_actor_should_pick_paint (self)) + if (clutter_actor_should_pick_paint (self, pick_context)) { ClutterActorBox box = { .x1 = 0, @@ -2344,6 +2344,7 @@ clutter_actor_real_pick (ClutterActor *self, /** * clutter_actor_should_pick_paint: * @self: A #ClutterActor + * @pick_context: a #ClutterPickContext * * Should be called inside the implementation of the * #ClutterActor::pick virtual function in order to check whether @@ -2355,13 +2356,14 @@ clutter_actor_real_pick (ClutterActor *self, * %FALSE otherwise */ gboolean -clutter_actor_should_pick_paint (ClutterActor *self) +clutter_actor_should_pick_paint (ClutterActor *self, + ClutterPickContext *pick_context) { g_return_val_if_fail (CLUTTER_IS_ACTOR (self), FALSE); if (CLUTTER_ACTOR_IS_MAPPED (self) && clutter_actor_has_allocation (self) && - (_clutter_context_get_pick_mode () == CLUTTER_PICK_ALL || + (clutter_pick_context_get_mode (pick_context) == CLUTTER_PICK_ALL || CLUTTER_ACTOR_IS_REACTIVE (self))) return TRUE; diff --git a/clutter/clutter/clutter-actor.h b/clutter/clutter/clutter-actor.h index 3ffd98f2c..8bb7bd174 100644 --- a/clutter/clutter/clutter-actor.h +++ b/clutter/clutter/clutter-actor.h @@ -591,7 +591,8 @@ void clutter_actor_set_offscreen_redirect CLUTTER_EXPORT ClutterOffscreenRedirect clutter_actor_get_offscreen_redirect (ClutterActor *self); CLUTTER_EXPORT -gboolean clutter_actor_should_pick_paint (ClutterActor *self); +gboolean clutter_actor_should_pick_paint (ClutterActor *self, + ClutterPickContext *pick_context); CLUTTER_EXPORT gboolean clutter_actor_is_in_clone_paint (ClutterActor *self); CLUTTER_EXPORT diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c index 7d5f2bc5d..89cd7b014 100644 --- a/src/compositor/meta-surface-actor.c +++ b/src/compositor/meta-surface-actor.c @@ -184,7 +184,7 @@ meta_surface_actor_pick (ClutterActor *actor, ClutterActorIter iter; ClutterActor *child; - if (!clutter_actor_should_pick_paint (actor)) + if (!clutter_actor_should_pick_paint (actor, pick_context)) return; /* If there is no region then use the regular pick */