[virt-tools-list] [PATCH virt-viewer 2/4] display: add fullscreen property

Marc-André Lureau marcandre.lureau at gmail.com
Fri Jul 5 11:24:08 UTC 2013


Now that fullscreen state is no longer global to application, we need to
have the current state per display
---
 src/virt-viewer-display.c | 31 +++++++++++++++++++++++++++++++
 src/virt-viewer-display.h |  2 ++
 2 files changed, 33 insertions(+)

diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index b7bf6ef..253d96a 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -48,6 +48,7 @@ struct _VirtViewerDisplayPrivate
     guint show_hint;
     VirtViewerSession *session;
     gboolean auto_resize;
+    gboolean fullscreen;
 };
 
 #if !GTK_CHECK_VERSION(3, 0, 0)
@@ -80,6 +81,7 @@ enum {
 
     PROP_DESKTOP_WIDTH,
     PROP_DESKTOP_HEIGHT,
+    PROP_FULLSCREEN,
     PROP_NTH_DISPLAY,
     PROP_ZOOM,
     PROP_ZOOM_LEVEL,
@@ -193,6 +195,14 @@ virt_viewer_display_class_init(VirtViewerDisplayClass *class)
                                                      G_PARAM_READWRITE |
                                                      G_PARAM_CONSTRUCT));
 
+    g_object_class_install_property(object_class,
+                                    PROP_FULLSCREEN,
+                                    g_param_spec_boolean("fullscreen",
+                                                         "Fullscreen",
+                                                         "Fullscreen",
+                                                         FALSE,
+                                                         G_PARAM_READABLE));
+
     g_signal_new("display-pointer-grab",
                  G_OBJECT_CLASS_TYPE(object_class),
                  G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
@@ -338,6 +348,9 @@ virt_viewer_display_get_property(GObject *object,
     case PROP_MONITOR:
         g_value_set_int(value, priv->monitor);
         break;
+    case PROP_FULLSCREEN:
+        g_value_set_boolean(value, virt_viewer_display_get_fullscreen(display));
+        break;
 
     default:
         G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -705,6 +718,24 @@ void virt_viewer_display_close(VirtViewerDisplay *self)
     klass->close(self);
 }
 
+void virt_viewer_display_set_fullscreen(VirtViewerDisplay *self, gboolean fullscreen)
+{
+    g_return_if_fail(VIRT_VIEWER_IS_DISPLAY(self));
+
+    if (self->priv->fullscreen == fullscreen)
+        return;
+
+    self->priv->fullscreen = fullscreen;
+    g_object_notify(G_OBJECT(self), "fullscreen");
+}
+
+gboolean virt_viewer_display_get_fullscreen(VirtViewerDisplay *self)
+{
+    g_return_val_if_fail(VIRT_VIEWER_IS_DISPLAY(self), FALSE);
+
+    return self->priv->fullscreen;
+}
+
 /*
  * Local variables:
  *  c-indent-level: 4
diff --git a/src/virt-viewer-display.h b/src/virt-viewer-display.h
index fd238c5..99844c4 100644
--- a/src/virt-viewer-display.h
+++ b/src/virt-viewer-display.h
@@ -118,6 +118,8 @@ void virt_viewer_display_set_auto_resize(VirtViewerDisplay *display, gboolean au
 gboolean virt_viewer_display_get_auto_resize(VirtViewerDisplay *display);
 void virt_viewer_display_set_monitor(VirtViewerDisplay *display, gint monitor);
 gint virt_viewer_display_get_monitor(VirtViewerDisplay *display);
+void virt_viewer_display_set_fullscreen(VirtViewerDisplay *display, gboolean fullscreen);
+gboolean virt_viewer_display_get_fullscreen(VirtViewerDisplay *display);
 void virt_viewer_display_release_cursor(VirtViewerDisplay *display);
 
 void virt_viewer_display_close(VirtViewerDisplay *display);
-- 
1.8.3.rc1.49.g8d97506




More information about the virt-tools-list mailing list