[mutter] window-actor/x11: Disable culling on window actor level
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] window-actor/x11: Disable culling on window actor level
- Date: Sat, 29 Feb 2020 19:52:37 +0000 (UTC)
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]