summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-display.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-17 16:31:44 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-07-23 16:27:33 +0200
commit6f9c7a624e406cf1b9e89da558937e6d91b4daa4 (patch)
treecb6f427d9db51fd8726c328f4636c466c3cd8da0 /src/virt-viewer-display.c
parent37c30a45698aaa20623e91d85e304db01a4cb294 (diff)
downloadvirt-viewer-6f9c7a624e406cf1b9e89da558937e6d91b4daa4.tar.gz
virt-viewer-6f9c7a624e406cf1b9e89da558937e6d91b4daa4.tar.xz
virt-viewer-6f9c7a624e406cf1b9e89da558937e6d91b4daa4.zip
Add VirtViewerDisplay::selectable property
This property will be set when the display can be selected to be "enabled" and shown (this can involve creating/connecting an additional guest monitor, and may need guest agent cooperation for example).
Diffstat (limited to 'src/virt-viewer-display.c')
-rw-r--r--src/virt-viewer-display.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index 18fed19..8d13733 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -80,6 +80,7 @@ enum {
PROP_ZOOM_LEVEL,
PROP_SHOW_HINT,
PROP_SESSION,
+ PROP_SELECTABLE,
};
static void
@@ -167,6 +168,13 @@ virt_viewer_display_class_init(VirtViewerDisplayClass *class)
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property(object_class,
+ PROP_SELECTABLE,
+ g_param_spec_boolean("selectable",
+ "Selectable",
+ "Selectable",
+ FALSE,
+ G_PARAM_READABLE));
g_signal_new("display-pointer-grab",
G_OBJECT_CLASS_TYPE(object_class),
@@ -302,6 +310,9 @@ virt_viewer_display_get_property(GObject *object,
case PROP_SESSION:
g_value_set_object(value, virt_viewer_display_get_session(display));
break;
+ case PROP_SELECTABLE:
+ g_value_set_boolean(value, virt_viewer_display_get_selectable(display));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -601,6 +612,18 @@ void virt_viewer_display_release_cursor(VirtViewerDisplay *self)
klass->release_cursor(self);
}
+gboolean virt_viewer_display_get_selectable(VirtViewerDisplay *self)
+{
+ VirtViewerDisplayClass *klass;
+
+ g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
+
+ klass = VIRT_VIEWER_DISPLAY_GET_CLASS(self);
+ if (klass->selectable)
+ return klass->selectable(self);
+
+ return TRUE;
+}
void virt_viewer_display_close(VirtViewerDisplay *self)
{