[vino] Add display_status_icon property to set if the VinoServer will use the vino status icon or not



commit a51c32791584f19984f67a8d0bd6e7fafb33afac
Author: Arnaud Maillet <arnaud maillet collabora co uk>
Date:   Tue Jul 21 12:42:32 2009 +0200

    Add display_status_icon property to set if the VinoServer will use the vino status icon or not

 server/vino-server.c |   48 ++++++++++++++++++++++++++++++++++++++++++------
 server/vino-server.h |    2 ++
 2 files changed, 44 insertions(+), 6 deletions(-)
---
diff --git a/server/vino-server.c b/server/vino-server.c
index 21b3238..6655b80 100644
--- a/server/vino-server.c
+++ b/server/vino-server.c
@@ -62,6 +62,7 @@ struct _VinoServerPrivate
   VinoCursorData   *cursor_data;
   VinoPrompt       *prompt;
   VinoStatusIcon   *icon;
+  gboolean          display_status_icon;
   VinoDBusListener *listener;
   gboolean          use_dbus_listener;
   VinoUpnp         *upnp;
@@ -113,6 +114,7 @@ enum
   PROP_ON_HOLD,
   PROP_PROMPT_ENABLED,
   PROP_VIEW_ONLY,
+  PROP_DISPLAY_STATUS_ICON,
   PROP_USE_DBUS_LISTENER,
   PROP_NETWORK_INTERFACE,
   PROP_USE_ALTERNATIVE_PORT,
@@ -303,7 +305,8 @@ static void
 vino_server_client_accepted (VinoServer *server,
                              VinoClient *client)
 {
-  vino_status_icon_add_client (server->priv->icon, client);
+  if (server->priv->display_status_icon)
+    vino_status_icon_add_client (server->priv->icon, client);
 
   vino_server_unlock_screen ();
 
@@ -316,12 +319,15 @@ static void
 vino_server_client_disconnected (VinoServer *server,
                                  VinoClient *client)
 {
-  if (vino_status_icon_remove_client (server->priv->icon, client))
+  if (server->priv->display_status_icon)
     {
-      vino_server_lock_screen (server);
+      if (vino_status_icon_remove_client (server->priv->icon, client))
+        {
+          vino_server_lock_screen (server);
 
-      if (vino_server_get_disable_background (server))
-	vino_background_draw (TRUE);
+          if (vino_server_get_disable_background (server))
+            vino_background_draw (TRUE);
+        }
     }
 }
 
@@ -1054,7 +1060,6 @@ vino_server_init_from_screen (VinoServer *server,
                     G_CALLBACK (vino_server_clipboard_cb),
                     server);
 
-  server->priv->icon = vino_status_icon_new (server, server->priv->screen);
   server->priv->upnp = NULL;
   server->priv->disable_xdamage = FALSE;
 }
@@ -1156,6 +1161,9 @@ vino_server_set_property (GObject      *object,
     case PROP_VIEW_ONLY:
       vino_server_set_view_only (server, g_value_get_boolean (value));
       break;
+    case PROP_DISPLAY_STATUS_ICON:
+      vino_server_set_display_status_icon (server, g_value_get_boolean (value));
+      break;
     case PROP_USE_DBUS_LISTENER:
       vino_server_set_use_dbus_listener (server, g_value_get_boolean (value));
       break;
@@ -1217,6 +1225,9 @@ vino_server_get_property (GObject    *object,
     case PROP_VIEW_ONLY:
       g_value_set_boolean (value, server->priv->view_only);
       break;
+    case PROP_DISPLAY_STATUS_ICON:
+      g_value_set_boolean (value, server->priv->display_status_icon);
+      break;
     case PROP_USE_DBUS_LISTENER:
       g_value_set_boolean (value, server->priv->use_dbus_listener);
       break;
@@ -1268,6 +1279,12 @@ vino_server_constructed (GObject *object)
     server->priv->listener = vino_dbus_listener_new (server);
   else
     server->priv->listener = NULL;
+
+  if (server->priv->display_status_icon)
+    server->priv->icon = vino_status_icon_new (server, server->priv->screen);
+  else
+    server->priv->icon = NULL;
+
 }
 
 static void
@@ -1337,6 +1354,16 @@ vino_server_class_init (VinoServerClass *klass)
                                                          G_PARAM_STATIC_BLURB));
 
    g_object_class_install_property (gobject_class,
+				   PROP_DISPLAY_STATUS_ICON,
+				   g_param_spec_boolean ("display-status-icon",
+							 "Display the status icon",
+							 "Allow to display the status icon",
+							 TRUE,
+                                                         G_PARAM_READWRITE   |
+                                                         G_PARAM_CONSTRUCT   |
+                                                         G_PARAM_STATIC_STRINGS));
+
+   g_object_class_install_property (gobject_class,
 				   PROP_USE_DBUS_LISTENER,
 				   g_param_spec_boolean ("use-dbus-listener",
 							 "Use the dbus listener",
@@ -1530,6 +1557,15 @@ vino_server_set_view_only (VinoServer *server,
     }
 }
 
+void
+vino_server_set_display_status_icon (VinoServer *server,
+    gboolean display_status_icon)
+{
+  g_return_if_fail (VINO_IS_SERVER (server));
+
+  server->priv->display_status_icon = display_status_icon;
+}
+
 gboolean
 vino_server_get_use_dbus_listener (VinoServer *server)
 {
diff --git a/server/vino-server.h b/server/vino-server.h
index 1174b0b..a0d9d32 100644
--- a/server/vino-server.h
+++ b/server/vino-server.h
@@ -79,6 +79,8 @@ gboolean             vino_server_get_prompt_enabled       (VinoServer     *serve
 void                 vino_server_set_view_only            (VinoServer     *server,
 							   gboolean        view_only);
 gboolean             vino_server_get_view_only            (VinoServer     *server);
+void                 vino_server_set_display_status_icon  (VinoServer     *server,
+                                                           gboolean        display_status_icon);
 void                 vino_server_set_use_dbus_listener    (VinoServer     *server,
                                                            gboolean        use_dbus_listener);
 gboolean             vino_server_get_use_dbus_listener    (VinoServer     *server);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]