[gnome-shell] st/widget: Invalidate paint volume on style changes



commit 62e40a13506b4481a50944be886b36566c464dc0
Author: Jonas Dreßler <verdre v0yd nl>
Date:   Fri Mar 12 22:30:43 2021 +0100

    st/widget: Invalidate paint volume on style changes
    
    StWidget is overriding ClutterActors get_paint_volume() vfunc to adjust
    for overpaint of things like box shadows that get set in CSS, it does
    that by setting the paint volume to the theme nodes paint box.
    
    Since StWidget can't really get notified when the paint box changes, we
    just invalidate the paint volume when the theme nodes paint_equal()
    returns FALSE.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1484>

 src/st/st-widget.c | 2 ++
 1 file changed, 2 insertions(+)
---
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
index 7e03028c0d..47a84c5c2d 100644
--- a/src/st/st-widget.c
+++ b/src/st/st-widget.c
@@ -1722,6 +1722,8 @@ st_widget_recompute_style (StWidget    *widget,
 
   if (!paint_equal)
     {
+      clutter_actor_invalidate_paint_volume (CLUTTER_ACTOR (widget));
+
       next_paint_state (widget);
 
       if (!st_theme_node_paint_equal (new_theme_node, current_paint_state (widget)->node))


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