summaryrefslogtreecommitdiff
path: root/src/compositor
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2020-07-13 20:19:00 +0300
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2020-07-13 20:19:00 +0300
commit5645c166e9a44e55d98b819814dc6c13dfd97c89 (patch)
tree47ba6869a897a905693ba9b481ab5ca6b451e9c7 /src/compositor
parent10471f06b658c82971490123d93979e7017f6139 (diff)
downloadmetacity-5645c166e9a44e55d98b819814dc6c13dfd97c89.tar.gz
compositor-xrender: do not create shadows when disabled
https://gitlab.gnome.org/GNOME/metacity/-/issues/12
Diffstat (limited to 'src/compositor')
-rw-r--r--src/compositor/meta-compositor-xrender.c6
-rw-r--r--src/compositor/meta-compositor-xrender.h2
-rw-r--r--src/compositor/meta-surface-xrender.c12
3 files changed, 15 insertions, 5 deletions
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c
index 64b8eaea..6acd3297 100644
--- a/src/compositor/meta-compositor-xrender.c
+++ b/src/compositor/meta-compositor-xrender.c
@@ -1192,6 +1192,12 @@ meta_compositor_xrender_new (MetaDisplay *display,
NULL);
}
+gboolean
+meta_compositor_xrender_have_shadows (MetaCompositorXRender *self)
+{
+ return self->have_shadows;
+}
+
MetaShadowXRender *
meta_compositor_xrender_create_shadow (MetaCompositorXRender *self,
MetaSurface *surface)
diff --git a/src/compositor/meta-compositor-xrender.h b/src/compositor/meta-compositor-xrender.h
index b419ee63..d07c47ec 100644
--- a/src/compositor/meta-compositor-xrender.h
+++ b/src/compositor/meta-compositor-xrender.h
@@ -31,6 +31,8 @@ G_DECLARE_FINAL_TYPE (MetaCompositorXRender, meta_compositor_xrender,
MetaCompositor *meta_compositor_xrender_new (MetaDisplay *display,
GError **error);
+gboolean meta_compositor_xrender_have_shadows (MetaCompositorXRender *self);
+
MetaShadowXRender *meta_compositor_xrender_create_shadow (MetaCompositorXRender *self,
MetaSurface *surface);
diff --git a/src/compositor/meta-surface-xrender.c b/src/compositor/meta-surface-xrender.c
index f8a03e8a..1ce839fe 100644
--- a/src/compositor/meta-surface-xrender.c
+++ b/src/compositor/meta-surface-xrender.c
@@ -497,16 +497,18 @@ meta_surface_xrender_pre_paint (MetaSurface *surface,
if (self->shadow_changed)
{
+ MetaCompositor *compositor;
+ MetaCompositorXRender *compositor_xrender;
+
+ compositor = meta_surface_get_compositor (surface);
+ compositor_xrender = META_COMPOSITOR_XRENDER (compositor);
+
if (self->shadow == NULL &&
+ meta_compositor_xrender_have_shadows (compositor_xrender) &&
meta_surface_has_shadow (surface))
{
- MetaCompositor *compositor;
- MetaCompositorXRender *compositor_xrender;
XserverRegion shadow_region;
- compositor = meta_surface_get_compositor (surface);
- compositor_xrender = META_COMPOSITOR_XRENDER (compositor);
-
self->shadow = meta_compositor_xrender_create_shadow (compositor_xrender,
surface);