[mate-screensaver] add mate-screensaver_use-idle-delay-key-in-gsettings-schema.patch

Wolfgang Ulbrich raveit65 at fedoraproject.org
Wed Jul 17 17:12:22 UTC 2013


commit b0f843db1482d4f6b281e735ddff77f01a754d9f
Author: raveit65 <chat-to-me at raveit.de>
Date:   Wed Jul 17 19:12:02 2013 +0200

    add mate-screensaver_use-idle-delay-key-in-gsettings-schema.patch

 ...er_use-idle-delay-key-in-gsettings-schema.patch |  485 ++++++++++++++++++++
 1 files changed, 485 insertions(+), 0 deletions(-)
---
diff --git a/mate-screensaver_use-idle-delay-key-in-gsettings-schema.patch b/mate-screensaver_use-idle-delay-key-in-gsettings-schema.patch
new file mode 100644
index 0000000..f4f080d
--- /dev/null
+++ b/mate-screensaver_use-idle-delay-key-in-gsettings-schema.patch
@@ -0,0 +1,485 @@
+From 311a5fd6c2f9396f4af3085a0a1ac5a5b21e25f5 Mon Sep 17 00:00:00 2001
+From: Stefano Karapetsas <stefano at karapetsas.com>
+Date: Mon, 06 May 2013 15:12:21 +0000
+Subject: Use idle-delay key in org.mate.session schema
+
+Remove it from screensaver schema
+Closes #17 (https://github.com/mate-desktop/mate-screensaver/issues/17)
+---
+diff --git a/data/org.mate.screensaver.gschema.migrate b/data/org.mate.screensaver.gschema.migrate
+index 27c7b2d..f73ecc5 100644
+--- a/data/org.mate.screensaver.gschema.migrate
++++ b/data/org.mate.screensaver.gschema.migrate
+@@ -3,7 +3,6 @@ idle-activation-enabled = /apps/mate-screensaver/idle_activation_enabled
+ lock-enabled = /apps/mate-screensaver/lock_enabled
+ mode = /apps/mate-screensaver/mode
+ themes = /apps/mate-screensaver/themes
+-idle-delay = /apps/mate-screensaver/idle_delay
+ power-management-delay = /apps/mate-screensaver/power_management_delay
+ cycle-delay = /apps/mate-screensaver/cycle_delay
+ lock-delay = /apps/mate-screensaver/lock_delay
+diff --git a/data/org.mate.screensaver.gschema.xml.in b/data/org.mate.screensaver.gschema.xml.in
+index d3fd2a4..5cdb071 100644
+--- a/data/org.mate.screensaver.gschema.xml.in
++++ b/data/org.mate.screensaver.gschema.xml.in
+@@ -25,11 +25,6 @@
+       <summary>Screensaver themes</summary>
+       <description>This key specifies the list of themes to be used by the screensaver. It's ignored when "mode" key is "blank-only", should provide the theme name when "mode" is "single", and should provide a list of themes when "mode" is "random".</description>
+     </key>
+-    <key name="idle-delay" type="i">
+-      <default>10</default>
+-      <summary>Time before session is considered idle</summary>
+-      <description>The number of minutes of inactivity before the session is considered idle.</description>
+-    </key>
+     <key name="power-management-delay" type="i">
+       <default>30</default>
+       <summary>Time before power management baseline</summary>
+diff --git a/src/gs-prefs.c b/src/gs-prefs.c
+index 6d7f562..df1267c 100644
+--- a/src/gs-prefs.c
++++ b/src/gs-prefs.c
+@@ -38,11 +38,13 @@ static void gs_prefs_finalize   (GObject      *object);
+ #define KEY_LOCK_DISABLE "disable-lock-screen"
+ #define KEY_USER_SWITCH_DISABLE "disable-user-switching"
+ 
++#define SESSION_SETTINGS_SCHEMA "org.mate.session"
++#define KEY_IDLE_DELAY "idle-delay"
++
+ #define GSETTINGS_SCHEMA "org.mate.screensaver"
+ #define KEY_IDLE_ACTIVATION_ENABLED "idle-activation-enabled"
+ #define KEY_LOCK_ENABLED "lock-enabled"
+ #define KEY_MODE "mode"
+-#define KEY_ACTIVATE_DELAY "idle-delay"
+ #define KEY_POWER_DELAY "power-management-delay"
+ #define KEY_LOCK_DELAY "lock-delay"
+ #define KEY_CYCLE_DELAY "cycle-delay"
+@@ -61,6 +63,7 @@ struct GSPrefsPrivate
+ {
+ 	GSettings *settings;
+ 	GSettings *lockdown_settings;
++	GSettings *session_settings;
+ };
+ 
+ enum
+@@ -338,7 +341,7 @@ gs_prefs_load_from_settings (GSPrefs *prefs)
+ 	bvalue = g_settings_get_boolean (prefs->priv->lockdown_settings, KEY_USER_SWITCH_DISABLE);
+ 	_gs_prefs_set_user_switch_disabled (prefs, bvalue);
+ 
+-	value = g_settings_get_int (prefs->priv->settings, KEY_ACTIVATE_DELAY);
++	value = g_settings_get_int (prefs->priv->session_settings, KEY_IDLE_DELAY);
+ 	_gs_prefs_set_timeout (prefs, value);
+ 
+ 	value = g_settings_get_int (prefs->priv->settings, KEY_POWER_DELAY);
+@@ -409,7 +412,7 @@ key_changed_cb (GSettings *settings,
+ 		g_strfreev (strv);
+ 
+ 	}
+-	else if (strcmp (key, KEY_ACTIVATE_DELAY) == 0)
++	else if (strcmp (key, KEY_IDLE_DELAY) == 0)
+ 	{
+ 		int delay;
+ 
+@@ -551,6 +554,12 @@ gs_prefs_init (GSPrefs *prefs)
+ 			  "changed",
+ 			  G_CALLBACK (key_changed_cb),
+ 			  prefs);
++	prefs->priv->session_settings = g_settings_new (SESSION_SETTINGS_SCHEMA);
++	g_signal_connect (prefs->priv->session_settings,
++			  "changed::" KEY_IDLE_DELAY,
++			  G_CALLBACK (key_changed_cb),
++			  prefs);
++
+ 	prefs->idle_activation_enabled = TRUE;
+ 	prefs->lock_enabled            = TRUE;
+ 	prefs->lock_disabled           = FALSE;
+@@ -591,6 +600,11 @@ gs_prefs_finalize (GObject *object)
+ 		prefs->priv->lockdown_settings = NULL;
+ 	}
+ 
++	if (prefs->priv->session_settings) {
++		g_object_unref (prefs->priv->session_settings);
++		prefs->priv->session_settings = NULL;
++	}
++
+ 	if (prefs->themes)
+ 	{
+ 		g_slist_foreach (prefs->themes, (GFunc)g_free, NULL);
+diff --git a/src/mate-screensaver-preferences.c b/src/mate-screensaver-preferences.c
+index 174aea8..8ccbaa0 100644
+--- a/src/mate-screensaver-preferences.c
++++ b/src/mate-screensaver-preferences.c
+@@ -47,11 +47,13 @@
+ #define LOCKDOWN_SETTINGS_SCHEMA "org.mate.lockdown"
+ #define KEY_LOCK_DISABLE "disable-lock-screen"
+ 
++#define SESSION_SETTINGS_SCHEMA "org.mate.session"
++#define KEY_IDLE_DELAY "idle-delay"
++
+ #define GSETTINGS_SCHEMA "org.mate.screensaver"
+ #define KEY_LOCK "lock-enabled"
+ #define KEY_IDLE_ACTIVATION_ENABLED "idle-activation-enabled"
+ #define KEY_MODE "mode"
+-#define KEY_ACTIVATE_DELAY "idle-delay"
+ #define KEY_LOCK_DELAY "lock-delay"
+ #define KEY_CYCLE_DELAY "cycle-delay"
+ #define KEY_THEMES "themes"
+@@ -78,65 +80,52 @@ static GtkTargetEntry drop_types [] =
+ 	{ "_NETSCAPE_URL", 0, TARGET_NS_URL }
+ };
+ 
+-static GtkBuilder       *builder = NULL;
++static GtkBuilder     *builder = NULL;
+ static GSThemeManager *theme_manager = NULL;
+ static GSJob          *job = NULL;
++static GSettings      *screensaver_settings = NULL;
++static GSettings      *session_settings = NULL;
++static GSettings      *lockdown_settings = NULL;
+ 
+ static gint32
+ config_get_activate_delay (gboolean *is_writable)
+ {
+-	GSettings *settings;
+-	gint32       delay;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	gint32 delay;
+ 
+ 	if (is_writable)
+ 	{
+-		*is_writable = g_settings_is_writable (settings,
+-		               KEY_ACTIVATE_DELAY);
++		*is_writable = g_settings_is_writable (session_settings,
++		               KEY_IDLE_DELAY);
+ 	}
+ 
+-	delay = g_settings_get_int (settings, KEY_ACTIVATE_DELAY);
++	delay = g_settings_get_int (session_settings, KEY_IDLE_DELAY);
+ 
+ 	if (delay < 1)
+ 	{
+ 		delay = 1;
+ 	}
+ 
+-	g_object_unref (settings);
+-
+ 	return delay;
+ }
+ 
+ static void
+ config_set_activate_delay (gint32 timeout)
+ {
+-	GSettings *settings;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
+-
+-	g_settings_set_int (settings, KEY_ACTIVATE_DELAY, timeout);
+-
+-	g_object_unref (settings);
++	g_settings_set_int (session_settings, KEY_IDLE_DELAY, timeout);
+ }
+ 
+ static int
+ config_get_mode (gboolean *is_writable)
+ {
+-	GSettings *settings;
+-	int          mode;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	int mode;
+ 
+ 	if (is_writable)
+ 	{
+-		*is_writable = g_settings_is_writable (settings,
++		*is_writable = g_settings_is_writable (screensaver_settings,
+ 		               KEY_MODE);
+ 	}
+ 
+-	mode = g_settings_get_enum (settings, KEY_MODE);
+-
+-	g_object_unref (settings);
++	mode = g_settings_get_enum (screensaver_settings, KEY_MODE);
+ 
+ 	return mode;
+ }
+@@ -144,32 +133,23 @@ config_get_mode (gboolean *is_writable)
+ static void
+ config_set_mode (int mode)
+ {
+-	GSettings *settings;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
+-
+-	g_settings_set_enum (settings, KEY_MODE, mode);
+-
+-	g_object_unref (settings);
++	g_settings_set_enum (screensaver_settings, KEY_MODE, mode);
+ }
+ 
+ static char *
+ config_get_theme (gboolean *is_writable)
+ {
+-	GSettings *settings;
+-	char        *name;
+-	int          mode;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	char *name;
++	int   mode;
+ 
+ 	if (is_writable)
+ 	{
+ 		gboolean can_write_theme;
+ 		gboolean can_write_mode;
+ 
+-		can_write_theme = g_settings_is_writable (settings,
++		can_write_theme = g_settings_is_writable (screensaver_settings,
+ 		                                          KEY_THEMES);
+-		can_write_mode = g_settings_is_writable (settings,
++		can_write_mode = g_settings_is_writable (screensaver_settings,
+ 		                                         KEY_MODE);
+ 		*is_writable = can_write_theme && can_write_mode;
+ 	}
+@@ -187,11 +167,11 @@ config_get_theme (gboolean *is_writable)
+ 	}
+ 	else
+ 	{
+-		 gchar **strv;
+-                 strv = g_settings_get_strv (settings,
+-                                             KEY_THEMES);
+-                 if (strv != NULL) {
+-                          name = g_strdup (strv[0]);
++		gchar **strv;
++		strv = g_settings_get_strv (screensaver_settings,
++	                                KEY_THEMES);
++		if (strv != NULL) {
++			name = g_strdup (strv[0]);
+ 		}
+ 		else
+ 		{
+@@ -203,8 +183,6 @@ config_get_theme (gboolean *is_writable)
+ 		g_strfreev (strv);
+ 	}
+ 
+-	g_object_unref (settings);
+-
+ 	return name;
+ }
+ 
+@@ -233,11 +211,8 @@ get_all_theme_ids (GSThemeManager *theme_manager)
+ static void
+ config_set_theme (const char *theme_id)
+ {
+-	GSettings *settings;
+ 	gchar **strv = NULL;
+-	int          mode;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	int     mode;
+ 
+ 	if (theme_id && strcmp (theme_id, "__blank-only") == 0)
+ 	{
+@@ -258,32 +233,26 @@ config_set_theme (const char *theme_id)
+ 
+ 	config_set_mode (mode);
+ 
+-	g_settings_set_strv (settings,
++	g_settings_set_strv (screensaver_settings,
+ 	                     KEY_THEMES,
+ 	                     (const gchar * const*) strv);
+ 
+ 	g_strfreev (strv);
+ 
+-	g_object_unref (settings);
+ }
+ 
+ static gboolean
+ config_get_enabled (gboolean *is_writable)
+ {
+-	int          enabled;
+-	GSettings *settings;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	int enabled;
+ 
+ 	if (is_writable)
+ 	{
+-		*is_writable = g_settings_is_writable (settings,
++		*is_writable = g_settings_is_writable (screensaver_settings,
+ 		               KEY_LOCK);
+ 	}
+ 
+-	enabled = g_settings_get_boolean (settings, KEY_IDLE_ACTIVATION_ENABLED);
+-
+-	g_object_unref (settings);
++	enabled = g_settings_get_boolean (screensaver_settings, KEY_IDLE_ACTIVATION_ENABLED);
+ 
+ 	return enabled;
+ }
+@@ -291,32 +260,21 @@ config_get_enabled (gboolean *is_writable)
+ static void
+ config_set_enabled (gboolean enabled)
+ {
+-	GSettings *settings;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
+-
+-	g_settings_set_boolean (settings, KEY_IDLE_ACTIVATION_ENABLED, enabled);
+-
+-	g_object_unref (settings);
++	g_settings_set_boolean (screensaver_settings, KEY_IDLE_ACTIVATION_ENABLED, enabled);
+ }
+ 
+ static gboolean
+ config_get_lock (gboolean *is_writable)
+ {
+-	GSettings *settings;
+-	gboolean     lock;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
++	gboolean lock;
+ 
+ 	if (is_writable)
+ 	{
+-		*is_writable = g_settings_is_writable (settings,
++		*is_writable = g_settings_is_writable (screensaver_settings,
+ 		               KEY_LOCK);
+ 	}
+ 
+-	lock = g_settings_get_boolean (settings, KEY_LOCK);
+-
+-	g_object_unref (settings);
++	lock = g_settings_get_boolean (screensaver_settings, KEY_LOCK);
+ 
+ 	return lock;
+ }
+@@ -324,27 +282,13 @@ config_get_lock (gboolean *is_writable)
+ static gboolean
+ config_get_lock_disabled ()
+ {
+-	GSettings *settings;
+-	gboolean     lock;
+-
+-	settings = g_settings_new (LOCKDOWN_SETTINGS_SCHEMA);
+-
+-	lock = g_settings_get_boolean (settings, KEY_LOCK_DISABLE);
+-
+-	g_object_unref (settings);
+-	return lock;
++	return g_settings_get_boolean (lockdown_settings, KEY_LOCK_DISABLE);
+ }
+ 
+ static void
+ config_set_lock (gboolean lock)
+ {
+-	GSettings *settings;
+-
+-	settings = g_settings_new (GSETTINGS_SCHEMA);
+-
+-	g_settings_set_boolean (settings, KEY_LOCK, lock);
+-
+-	g_object_unref (settings);
++	g_settings_set_boolean (screensaver_settings, KEY_LOCK, lock);
+ }
+ 
+ static void
+@@ -1195,7 +1139,7 @@ key_changed_cb (GSettings *settings, const gchar *key, gpointer data)
+ 			treeview = GTK_WIDGET (gtk_builder_get_object (builder, "savers_treeview"));
+ 			setup_treeview_selection (treeview);
+ 	}
+-	else if (strcmp (key, KEY_ACTIVATE_DELAY) == 0)
++	else if (strcmp (key, KEY_IDLE_DELAY) == 0)
+ 	{
+ 			int delay;
+ 
+@@ -1486,9 +1430,8 @@ init_capplet (void)
+ 	gdouble    activate_delay;
+ 	gboolean   enabled;
+ 	gboolean   is_writable;
+-	GSettings *settings;
+ 	GError    *error=NULL;
+-        gint       mode;
++	gint       mode;
+ 
+ 	gtk_builder_file = g_build_filename (GTKBUILDERDIR, GTK_BUILDER_FILE, NULL);
+ 	builder = gtk_builder_new();
+@@ -1547,6 +1490,24 @@ init_capplet (void)
+ 		gtk_widget_hide (gpm_button);
+ 	}
+ 
++	screensaver_settings = g_settings_new (GSETTINGS_SCHEMA);
++	g_signal_connect (screensaver_settings,
++	                  "changed",
++	                  G_CALLBACK (key_changed_cb),
++	                  NULL);
++
++	session_settings = g_settings_new (SESSION_SETTINGS_SCHEMA);
++	g_signal_connect (session_settings,
++	                  "changed::" KEY_IDLE_DELAY,
++	                  G_CALLBACK (key_changed_cb),
++	                  NULL);
++
++	lockdown_settings = g_settings_new (LOCKDOWN_SETTINGS_SCHEMA);
++	g_signal_connect (lockdown_settings,
++	                  "changed::" KEY_LOCK_DISABLE,
++	                  G_CALLBACK (key_changed_cb),
++	                  NULL);
++
+ 	activate_delay = config_get_activate_delay (&is_writable);
+ 	ui_set_delay (activate_delay);
+ 	if (! is_writable)
+@@ -1592,21 +1553,13 @@ init_capplet (void)
+ 	gtk_widget_show_all (dialog);
+ 
+ 	/* Update list of themes if using random screensaver */
+-         settings = g_settings_new (GSETTINGS_SCHEMA);
+-         mode = g_settings_get_enum (settings, KEY_MODE);
+-        if (mode == GS_MODE_RANDOM) {
+-                gchar **list;
+-                list = get_all_theme_ids (theme_manager);
+-                g_settings_set_strv (settings, KEY_THEMES, (const gchar * const*) list);
+-                g_strfreev (list);
+-        }
+-
+-        g_signal_connect (settings,
+-                          "changed",
+-                          G_CALLBACK (key_changed_cb),
+-                          NULL);
+-
+-	g_object_unref (settings);
++	mode = g_settings_get_enum (screensaver_settings, KEY_MODE);
++	if (mode == GS_MODE_RANDOM) {
++		gchar **list;
++		list = get_all_theme_ids (theme_manager);
++		g_settings_set_strv (screensaver_settings, KEY_THEMES, (const gchar * const*) list);
++		g_strfreev (list);
++	}
+ 
+ 	preview_clear (preview);
+ 	gs_job_set_widget (job, preview);
+@@ -1636,6 +1589,14 @@ init_capplet (void)
+ 	g_idle_add ((GSourceFunc)setup_treeview_idle, NULL);
+ }
+ 
++static void
++finalize_capplet (void)
++{
++	g_object_unref (screensaver_settings);
++	g_object_unref (session_settings);
++	g_object_unref (lockdown_settings);
++}
++
+ int
+ main (int    argc,
+       char **argv)
+@@ -1658,6 +1619,8 @@ main (int    argc,
+ 
+ 	gtk_main ();
+ 
++	finalize_capplet ();
++
+ 	g_object_unref (theme_manager);
+ 	g_object_unref (job);
+ 
+--
+cgit 
+


More information about the scm-commits mailing list