[metacity] surface: add meta_surface_hide
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] surface: add meta_surface_hide
- Date: Fri, 11 Oct 2019 13:28:41 +0000 (UTC)
commit 880e965923094edfe515f41a892fd21f4f57341b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Fri Oct 11 16:07:16 2019 +0300
surface: add meta_surface_hide
src/compositor/meta-compositor.c | 1 +
src/compositor/meta-surface-private.h | 2 ++
src/compositor/meta-surface-vulkan.c | 6 ++++++
src/compositor/meta-surface-xrender.c | 11 +++++++++++
src/compositor/meta-surface.c | 6 ++++++
src/compositor/meta-surface.h | 2 ++
6 files changed, 28 insertions(+)
---
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index f71f6de5..27612ea0 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -466,6 +466,7 @@ meta_compositor_hide_window (MetaCompositor *compositor,
return;
compositor_class->hide_window (compositor, surface, effect);
+ meta_surface_hide (surface);
}
void
diff --git a/src/compositor/meta-surface-private.h b/src/compositor/meta-surface-private.h
index 5eccbc31..29f67545 100644
--- a/src/compositor/meta-surface-private.h
+++ b/src/compositor/meta-surface-private.h
@@ -26,6 +26,8 @@ struct _MetaSurfaceClass
{
GObjectClass parent_class;
+ void (* hide) (MetaSurface *self);
+
void (* free_pixmap) (MetaSurface *self);
void (* pre_paint) (MetaSurface *self);
diff --git a/src/compositor/meta-surface-vulkan.c b/src/compositor/meta-surface-vulkan.c
index 0935aeb5..2a04776b 100644
--- a/src/compositor/meta-surface-vulkan.c
+++ b/src/compositor/meta-surface-vulkan.c
@@ -25,6 +25,11 @@ struct _MetaSurfaceVulkan
G_DEFINE_TYPE (MetaSurfaceVulkan, meta_surface_vulkan, META_TYPE_SURFACE)
+static void
+meta_surface_vulkan_hide (MetaSurface *surface)
+{
+}
+
static void
meta_surface_vulkan_free_pixmap (MetaSurface *surface)
{
@@ -42,6 +47,7 @@ meta_surface_vulkan_class_init (MetaSurfaceVulkanClass *self_class)
surface_class = META_SURFACE_CLASS (self_class);
+ surface_class->hide = meta_surface_vulkan_hide;
surface_class->free_pixmap = meta_surface_vulkan_free_pixmap;
surface_class->pre_paint = meta_surface_vulkan_pre_paint;
}
diff --git a/src/compositor/meta-surface-xrender.c b/src/compositor/meta-surface-xrender.c
index a6e95e2b..ece44675 100644
--- a/src/compositor/meta-surface-xrender.c
+++ b/src/compositor/meta-surface-xrender.c
@@ -108,6 +108,16 @@ meta_surface_xrender_finalize (GObject *object)
G_OBJECT_CLASS (meta_surface_xrender_parent_class)->finalize (object);
}
+static void
+meta_surface_xrender_hide (MetaSurface *surface)
+{
+ MetaSurfaceXRender *self;
+
+ self = META_SURFACE_XRENDER (surface);
+
+ free_picture (self);
+}
+
static void
meta_surface_xrender_free_pixmap (MetaSurface *surface)
{
@@ -140,6 +150,7 @@ meta_surface_xrender_class_init (MetaSurfaceXRenderClass *self_class)
object_class->finalize = meta_surface_xrender_finalize;
+ surface_class->hide = meta_surface_xrender_hide;
surface_class->free_pixmap = meta_surface_xrender_free_pixmap;
surface_class->pre_paint = meta_surface_xrender_pre_paint;
}
diff --git a/src/compositor/meta-surface.c b/src/compositor/meta-surface.c
index e5a5492a..13cee44a 100644
--- a/src/compositor/meta-surface.c
+++ b/src/compositor/meta-surface.c
@@ -342,6 +342,12 @@ meta_surface_show (MetaSurface *self)
free_pixmap (self);
}
+void
+meta_surface_hide (MetaSurface *self)
+{
+ META_SURFACE_GET_CLASS (self)->hide (self);
+}
+
void
meta_surface_process_damage (MetaSurface *self,
XDamageNotifyEvent *event)
diff --git a/src/compositor/meta-surface.h b/src/compositor/meta-surface.h
index d898ce59..6008837e 100644
--- a/src/compositor/meta-surface.h
+++ b/src/compositor/meta-surface.h
@@ -39,6 +39,8 @@ int meta_surface_get_height (MetaSurface *self);
void meta_surface_show (MetaSurface *self);
+void meta_surface_hide (MetaSurface *self);
+
void meta_surface_process_damage (MetaSurface *self,
XDamageNotifyEvent *event);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]