[mutter] window-actor/x11: Disable culling on window actor level



commit 6831f2edb46db1de8ca2ed853bcfc299518e22f6
Author: Robert Mader <robert mader posteo de>
Date:   Sun Feb 23 16:13:54 2020 +0100

    window-actor/x11: Disable culling on window actor level
    
    This shape region culling was wrongly implemented in f5a28aa9, as it
    does not take frame offsets into account, and is also redundant, as
    we already set the opaque region of the underlying surface accordingly.
    
    The other parts were implemented in ac7aa114, the reason given in
    the commit message:
    ```
    Wayland clients do this through the opaque region in the surface
    actor. However X11 clients were considered fully transparent for
    culling purposes, which may result in mutter painting other bits
    of the background or other windows that will be painted over in
    reality.
    ```
    
    is wrong though - culling on X11 actors works just fine and did only
    not work in Wayland sessions because of a bug that got fixed in
    19814497.
    
    In conclusion the whole part appears to be redundand and some testing
    done suggests the same. Drop it.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/1082

 src/compositor/meta-window-actor-x11.c | 39 ----------------------------------
 1 file changed, 39 deletions(-)
---
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c
index 15cfa5fcf..ef50b1ada 100644
--- a/src/compositor/meta-window-actor-x11.c
+++ b/src/compositor/meta-window-actor-x11.c
@@ -1451,45 +1451,6 @@ meta_window_actor_x11_cull_out (MetaCullable   *cullable,
 
   cullable_parent_iface->cull_out (cullable, unobscured_region, clip_region);
 
-  if ((unobscured_region || clip_region) &&
-      meta_window_actor_is_opaque (META_WINDOW_ACTOR (self)))
-    {
-      MetaWindow *window =
-        meta_window_actor_get_meta_window (META_WINDOW_ACTOR (self));
-
-      if (window->shape_region)
-        {
-          if (unobscured_region)
-            cairo_region_subtract (unobscured_region, window->shape_region);
-          if (clip_region)
-            cairo_region_subtract (clip_region, window->shape_region);
-        }
-      else
-        {
-          cairo_region_t *region = meta_window_get_frame_bounds (window);
-
-          if (region)
-            {
-              if (unobscured_region)
-                cairo_region_subtract (unobscured_region, region);
-              if (clip_region)
-                cairo_region_subtract (clip_region, region);
-            }
-          else
-            {
-              cairo_rectangle_int_t rect;
-
-              meta_window_get_frame_rect (window, &rect);
-              rect.x = rect.y = 0;
-
-              if (unobscured_region)
-                cairo_region_subtract_rectangle (unobscured_region, &rect);
-              if (clip_region)
-                cairo_region_subtract_rectangle (clip_region, &rect);
-            }
-        }
-    }
-
   set_clip_region_beneath (self, clip_region);
 }
 


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