summaryrefslogtreecommitdiff
path: root/src/compositor/meta-compositor.c
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2019-08-22 16:21:39 +0300
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2019-08-22 16:21:39 +0300
commit9949f5be1a170e6b158ba76a57554fb96d702242 (patch)
treeeb37b1e071853f8c2959cff1b49fc96c20ae6622 /src/compositor/meta-compositor.c
parent0ef46da1b9e9bea5c80b29a1819b04a64886e6ed (diff)
downloadmetacity-9949f5be1a170e6b158ba76a57554fb96d702242.tar.gz
compositor: add composited property
Diffstat (limited to 'src/compositor/meta-compositor.c')
-rw-r--r--src/compositor/meta-compositor.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index a83c3ae7..be518911 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -33,6 +33,8 @@ typedef struct
{
MetaDisplay *display;
+ gboolean composited;
+
/* _NET_WM_CM_Sn */
Atom cm_atom;
Window cm_window;
@@ -54,6 +56,8 @@ enum
PROP_DISPLAY,
+ PROP_COMPOSITED,
+
LAST_PROP
};
@@ -171,6 +175,10 @@ meta_compositor_get_property (GObject *object,
g_value_set_pointer (value, priv->display);
break;
+ case PROP_COMPOSITED:
+ g_value_set_boolean (value, priv->composited);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -195,6 +203,10 @@ meta_compositor_set_property (GObject *object,
priv->display = g_value_get_pointer (value);
break;
+ case PROP_COMPOSITED:
+ g_assert_not_reached ();
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
@@ -209,6 +221,11 @@ install_properties (GObjectClass *object_class)
G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE |
G_PARAM_STATIC_STRINGS);
+ properties[PROP_COMPOSITED] =
+ g_param_spec_boolean ("composited", "composited", "composited",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties (object_class, LAST_PROP, properties);
}
@@ -463,7 +480,27 @@ meta_compositor_is_our_xwindow (MetaCompositor *compositor,
gboolean
meta_compositor_is_composited (MetaCompositor *compositor)
{
- return !META_IS_COMPOSITOR_NONE (compositor);
+ MetaCompositorPrivate *priv;
+
+ priv = meta_compositor_get_instance_private (compositor);
+
+ return priv->composited;
+}
+
+void
+meta_compositor_set_composited (MetaCompositor *compositor,
+ gboolean composited)
+{
+ MetaCompositorPrivate *priv;
+
+ priv = meta_compositor_get_instance_private (compositor);
+
+ if (priv->composited == composited)
+ return;
+
+ priv->composited = composited;
+
+ g_object_notify_by_pspec (G_OBJECT (compositor), properties[PROP_COMPOSITED]);
}
gboolean