diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-08-10 21:33:50 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-08-15 02:12:08 +0200 |
commit | 6553617aa621fbb19dcc3406623ccf096e0334ea (patch) | |
tree | c6871b0d193655b2161d2a84ad9b0c66bf01c461 | |
parent | 955b2b531f4d55d271bf481fe896e3a45682eb71 (diff) | |
download | mutter-wip/carlosg/avoid-parent-relayouts.tar.gz |
clutter: Only redraw affected portions on parent widget on show/hidewip/carlosg/avoid-parent-relayouts
If we are lucky enough and the parent actor has the CLUTTER_ACTOR_NO_LAYOUT
flag, we would skip the relayout, but still redraw the parent actor in its
entirety.
In these cases, we can at least just redraw the area affected by the actor
being shown/hidden.
-rw-r--r-- | clutter/clutter/clutter-actor.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index 97b03fdb5..347a8807a 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -1792,7 +1792,7 @@ clutter_actor_show (ClutterActor *self) g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]); if (priv->parent != NULL) - clutter_actor_queue_redraw (priv->parent); + clutter_actor_queue_redraw (self); g_object_thaw_notify (G_OBJECT (self)); } @@ -1917,8 +1917,7 @@ clutter_actor_hide (ClutterActor *self) g_signal_emit (self, actor_signals[HIDE], 0); g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]); - if (priv->parent != NULL) - clutter_actor_queue_redraw (priv->parent); + clutter_actor_queue_redraw_on_parent (self); g_object_thaw_notify (G_OBJECT (self)); } |