diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2020-07-13 20:19:00 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2020-07-13 20:28:48 +0300 |
commit | fb92b23d9289a3368ab9052fb9818db509531288 (patch) | |
tree | adfbea5ba78ac9b0a852f1cd4df528209ac2cec2 | |
parent | 8e02c8e7a7da5432935779d000ba0c0bb5fd2eba (diff) | |
download | metacity-fb92b23d9289a3368ab9052fb9818db509531288.tar.gz |
compositor-xrender: do not create shadows when disabled
https://gitlab.gnome.org/GNOME/metacity/-/issues/12
-rw-r--r-- | src/compositor/meta-compositor-xrender.c | 6 | ||||
-rw-r--r-- | src/compositor/meta-compositor-xrender.h | 2 | ||||
-rw-r--r-- | src/compositor/meta-surface-xrender.c | 12 |
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); |