vino r1017 - in trunk: . server
- From: jwendell svn gnome org
- To: svn-commits-list gnome org
- Subject: vino r1017 - in trunk: . server
- Date: Sun, 14 Dec 2008 10:32:24 +0000 (UTC)
Author: jwendell
Date: Sun Dec 14 10:32:23 2008
New Revision: 1017
URL: http://svn.gnome.org/viewvc/vino?rev=1017&view=rev
Log:
2008-11-25 Jorge Pereira <jorge jorgepereira com br>
* server/vino-background.c: (vino_background_get_status):
* server/vino-background.h:
* server/vino-prefs.c: (vino_prefs_init), (vino_prefs_shutdown),
(vino_prefs_restore), (vino_prefs_lock), (vino_prefs_unlock):
Disable wallpaper on connection + restart = wallpaper gone
forever. Closes #562281.
Modified:
trunk/ChangeLog
trunk/server/vino-background.c
trunk/server/vino-background.h
trunk/server/vino-prefs.c
Modified: trunk/server/vino-background.c
==============================================================================
--- trunk/server/vino-background.c (original)
+++ trunk/server/vino-background.c Sun Dec 14 10:32:23 2008
@@ -53,3 +53,12 @@
g_object_unref (client);
}
+gboolean
+vino_background_get_status (void)
+{
+ GConfClient *client = gconf_client_get_default ();
+ gboolean option = gconf_client_get_bool (client, VINO_PREFS_DISABLE_BACKGROUND, NULL);
+ g_object_unref (client);
+ return option;
+}
+
Modified: trunk/server/vino-background.h
==============================================================================
--- trunk/server/vino-background.h (original)
+++ trunk/server/vino-background.h Sun Dec 14 10:32:23 2008
@@ -29,6 +29,7 @@
void vino_background_handler (int sig);
void vino_background_draw (gboolean option);
+gboolean vino_background_get_status (void);
G_END_DECLS
Modified: trunk/server/vino-prefs.c
==============================================================================
--- trunk/server/vino-prefs.c (original)
+++ trunk/server/vino-prefs.c Sun Dec 14 10:32:23 2008
@@ -21,12 +21,13 @@
*/
#include <config.h>
-
-#include "vino-prefs.h"
-
#include <string.h>
#include <gconf/gconf-client.h>
+#include <glib/gstdio.h>
#include <signal.h>
+#include <fcntl.h>
+
+#include "vino-prefs.h"
#include "vino-util.h"
#include "vino-mdns.h"
#include "vino-status-icon.h"
@@ -49,6 +50,8 @@
#define VINO_N_LISTENERS 12
+#define VINO_PREFS_LOCKFILE "vino-server.lock"
+
static GConfClient *vino_client = NULL;
static GSList *vino_servers = NULL;
static guint vino_listeners [VINO_N_LISTENERS] = { 0, };
@@ -470,6 +473,78 @@
vino_status_icon_set_visibility (icon, vino_icon_visibility);
}
+static void
+vino_prefs_restore (void)
+{
+ if (vino_background_get_status ())
+ vino_background_draw (TRUE);
+}
+
+static gchar *
+vino_prefs_lock_filename (void)
+{
+ gchar *dir;
+
+ dir = g_build_filename (g_get_user_data_dir (),
+ "vino",
+ NULL);
+ if (!g_file_test (dir, G_FILE_TEST_EXISTS))
+ g_mkdir_with_parents (dir, 0755);
+
+ g_free (dir);
+
+ return g_build_filename (g_get_user_data_dir (),
+ "vino",
+ VINO_PREFS_LOCKFILE,
+ NULL);
+}
+
+static gboolean
+vino_prefs_lock (void)
+{
+ gchar *lockfile;
+ gboolean res;
+
+ res = FALSE;
+ lockfile = vino_prefs_lock_filename ();
+
+ if (g_file_test (lockfile, G_FILE_TEST_EXISTS))
+ {
+ dprintf (PREFS, "WARNING: The lock file (%s) already exists\n", lockfile);
+ }
+ else
+ {
+ g_creat (lockfile, 0644);
+ res = TRUE;
+ }
+
+ g_free (lockfile);
+ return res;
+}
+
+static gboolean
+vino_prefs_unlock (void)
+{
+ gchar *lockfile;
+ gboolean res;
+
+ res = FALSE;
+ lockfile = vino_prefs_lock_filename ();
+
+ if (!g_file_test (lockfile, G_FILE_TEST_EXISTS))
+ {
+ dprintf (PREFS, "WARNING: Lock file (%s) not found!\n", lockfile);
+ }
+ else
+ {
+ g_unlink (lockfile);
+ res = TRUE;
+ }
+
+ g_free (lockfile);
+ return res;
+}
+
void
vino_prefs_init (gboolean view_only)
{
@@ -488,6 +563,9 @@
GCONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
+ if(!vino_prefs_lock ())
+ vino_prefs_restore ();
+
vino_enabled = gconf_client_get_bool (vino_client, VINO_PREFS_ENABLED, NULL);
dprintf (PREFS, "Access enabled: %s\n", vino_enabled ? "(true)" : "(false)");
@@ -696,5 +774,6 @@
g_object_unref (vino_client);
vino_client = NULL;
-}
+ vino_prefs_unlock ();
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]