diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2019-10-22 22:18:43 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2019-10-22 22:18:43 +0300 |
commit | 7fccad333f96eea2ac3f334c8e22ba9a89f4ff41 (patch) | |
tree | 5f4a84c1f00da0d6d9ff5ffead124149f9bc8c40 | |
parent | 291b930eaa49dac2b26282d778bab698be2755bd (diff) | |
download | metacity-7fccad333f96eea2ac3f334c8e22ba9a89f4ff41.tar.gz |
surface: add is_visible vfunc
-rw-r--r-- | src/compositor/meta-surface-private.h | 2 | ||||
-rw-r--r-- | src/compositor/meta-surface-vulkan.c | 7 | ||||
-rw-r--r-- | src/compositor/meta-surface-xrender.c | 14 | ||||
-rw-r--r-- | src/compositor/meta-surface.c | 2 |
4 files changed, 22 insertions, 3 deletions
diff --git a/src/compositor/meta-surface-private.h b/src/compositor/meta-surface-private.h index a92a69c9..f411b1be 100644 --- a/src/compositor/meta-surface-private.h +++ b/src/compositor/meta-surface-private.h @@ -28,6 +28,8 @@ struct _MetaSurfaceClass cairo_surface_t * (* get_image) (MetaSurface *self); + gboolean (* is_visible) (MetaSurface *self); + void (* show) (MetaSurface *self); void (* hide) (MetaSurface *self); diff --git a/src/compositor/meta-surface-vulkan.c b/src/compositor/meta-surface-vulkan.c index bb02e2d9..3b0c0f08 100644 --- a/src/compositor/meta-surface-vulkan.c +++ b/src/compositor/meta-surface-vulkan.c @@ -31,6 +31,12 @@ meta_surface_vulkan_get_image (MetaSurface *surface) return NULL; } +static gboolean +meta_surface_vulkan_is_visible (MetaSurface *surface) +{ + return FALSE; +} + static void meta_surface_vulkan_show (MetaSurface *surface) { @@ -64,6 +70,7 @@ meta_surface_vulkan_class_init (MetaSurfaceVulkanClass *self_class) surface_class = META_SURFACE_CLASS (self_class); surface_class->get_image = meta_surface_vulkan_get_image; + surface_class->is_visible = meta_surface_vulkan_is_visible; surface_class->show = meta_surface_vulkan_show; surface_class->hide = meta_surface_vulkan_hide; surface_class->opacity_changed = meta_surface_vulkan_opacity_changed; diff --git a/src/compositor/meta-surface-xrender.c b/src/compositor/meta-surface-xrender.c index 8a1dc2b5..f86cef22 100644 --- a/src/compositor/meta-surface-xrender.c +++ b/src/compositor/meta-surface-xrender.c @@ -588,6 +588,16 @@ meta_surface_xrender_get_image (MetaSurface *surface) return image; } +static gboolean +meta_surface_xrender_is_visible (MetaSurface *surface) +{ + MetaSurfaceXRender *self; + + self = META_SURFACE_XRENDER (surface); + + return self->picture != None; +} + static void meta_surface_xrender_show (MetaSurface *surface) { @@ -672,6 +682,7 @@ meta_surface_xrender_class_init (MetaSurfaceXRenderClass *self_class) object_class->finalize = meta_surface_xrender_finalize; surface_class->get_image = meta_surface_xrender_get_image; + surface_class->is_visible = meta_surface_xrender_is_visible; surface_class->show = meta_surface_xrender_show; surface_class->hide = meta_surface_xrender_hide; surface_class->opacity_changed = meta_surface_xrender_opacity_changed; @@ -702,8 +713,7 @@ meta_surface_xrender_paint (MetaSurfaceXRender *self, Picture paint_buffer, gboolean opaque) { - if (!meta_surface_is_visible (META_SURFACE (self)) || - self->picture == None) + if (!meta_surface_is_visible (META_SURFACE (self))) return; if (opaque) diff --git a/src/compositor/meta-surface.c b/src/compositor/meta-surface.c index 98563259..cff7d3ca 100644 --- a/src/compositor/meta-surface.c +++ b/src/compositor/meta-surface.c @@ -744,7 +744,7 @@ meta_surface_is_visible (MetaSurface *self) priv->pixmap == None) return FALSE; - return TRUE; + return META_SURFACE_GET_CLASS (self)->is_visible (self); } void |