gnome-power-manager-07-screensaver.diff revision 12374
12374N/A--- data/gpm-prefs.glade.orig 2008-02-04 10:15:41.232379000 +0800
12374N/A+++ data/gpm-prefs.glade 2008-02-04 16:22:55.133775000 +0800
12374N/A@@ -1784,6 +1784,25 @@
12374N/A </child>
12374N/A
12374N/A <child>
12374N/A+ <widget class="GtkCheckButton" id="checkbutton_screen_lock">
12374N/A+ <property name="visible">True</property>
12374N/A+ <property name="can_focus">True</property>
12374N/A+ <property name="label" translatable="yes">_Lock screen when computer is restored from blank screen, suspend or hibernate</property>
12374N/A+ <property name="use_underline">True</property>
12374N/A+ <property name="relief">GTK_RELIEF_NORMAL</property>
12374N/A+ <property name="focus_on_click">True</property>
12374N/A+ <property name="active">False</property>
12374N/A+ <property name="inconsistent">False</property>
12374N/A+ <property name="draw_indicator">True</property>
12374N/A+ </widget>
12374N/A+ <packing>
12374N/A+ <property name="padding">0</property>
12374N/A+ <property name="expand">False</property>
12374N/A+ <property name="fill">False</property>
12374N/A+ </packing>
12374N/A+ </child>
12374N/A+
12374N/A+ <child>
12374N/A <widget class="GtkCheckButton" id="checkbutton_general_ambient">
12374N/A <property name="visible">True</property>
12374N/A <property name="can_focus">True</property>
12374N/A--- data/gnome-power-manager.schemas.in.orig 2008-02-04 10:12:40.941327000 +0800
12374N/A+++ data/gnome-power-manager.schemas.in 2008-02-04 10:24:07.361341000 +0800
12374N/A@@ -929,6 +929,18 @@
12374N/A </schema>
12374N/A
12374N/A <schema>
12374N/A+ <key>/schemas/apps/gnome-power-manager/ui/enable_screen_lock</key>
12374N/A+ <applyto>/apps/gnome-power-manager/ui/enable_screen_lock</applyto>
12374N/A+ <owner>gnome-power-manager</owner>
12374N/A+ <type>bool</type>
12374N/A+ <default>true</default>
12374N/A+ <locale name="C">
12374N/A+ <short>If screen lock should be used</short>
12374N/A+ <long>If screen lock should be used when lid is closed, or system performs a suspend or hibernate action.</long>
12374N/A+ </locale>
12374N/A+ </schema>
12374N/A+
12374N/A+ <schema>
12374N/A <key>/schemas/apps/gnome-power-manager/ui/show_actions_in_menu</key>
12374N/A <applyto>/apps/gnome-power-manager/ui/show_actions_in_menu</applyto>
12374N/A <owner>gnome-power-manager</owner>
12374N/A--- src/gpm-conf.h.orig 2008-02-04 10:01:21.524585000 +0800
12374N/A+++ src/gpm-conf.h 2008-02-04 10:03:10.203311000 +0800
12374N/A@@ -147,6 +147,7 @@
12374N/A #define GPM_CONF_UI_SHOW_CPUFREQ GPM_CONF_DIR "/ui/cpufreq_show"
12374N/A #define GPM_CONF_UI_SHOW_ACTIONS_IN_MENU GPM_CONF_DIR "/ui/show_actions_in_menu"
12374N/A #define GPM_CONF_UI_ENABLE_BEEPING GPM_CONF_DIR "/ui/enable_sound"
12374N/A+#define GPM_CONF_UI_ENABLE_SCREEN_LOCK GPM_CONF_DIR "/ui/enable_screen_lock"
12374N/A
12374N/A /* we use the gnome-session key now */
12374N/A #define GPM_CONF_SESSION_REQUEST_SAVE "/apps/gnome-session/options/auto_save_session"
12374N/A--- src/gpm-screensaver.c.orig 2008-02-05 13:29:47.692582000 +0800
12374N/A+++ src/gpm-screensaver.c 2008-02-05 13:31:01.580705000 +0800
12374N/A@@ -29,6 +29,9 @@
12374N/A #include "gpm-conf.h"
12374N/A #include "gpm-screensaver.h"
12374N/A #include "gpm-debug.h"
12374N/A+#ifdef SOLARIS
12374N/A+#include <gdk/gdk.h>
12374N/A+#endif
12374N/A #include <libdbus-proxy.h>
12374N/A
12374N/A static void gpm_screensaver_class_init (GpmScreensaverClass *klass);
12374N/A@@ -239,6 +243,26 @@
12374N/A guint sleepcount = 0;
12374N/A DBusGProxy *proxy;
12374N/A
12374N/A+#ifdef SOLARIS
12374N/A+ GError *error = NULL;
12374N/A+ char *command;
12374N/A+ GdkScreen *screen;
12374N/A+
12374N/A+ command = g_strdup ("/usr/X11/bin/xscreensaver-command -lock");
12374N/A+ screen = gdk_screen_get_default ();
12374N/A+ gpm_debug ("Doing xscreensaver lock!");
12374N/A+ if (! gdk_spawn_command_line_on_screen (screen, command, &error)) {
12374N/A+ g_warning ("Cannot lock screen: %s", error->message);
12374N/A+ g_error_free (error);
12374N/A+ }
12374N/A+ g_free (command);
12374N/A+
12374N/A+ for (; sleepcount < 50; sleepcount ++) {
12374N/A+ /* Sleep for 1/10s */
12374N/A+ g_usleep (1000 * 100);
12374N/A+ }
12374N/A+ gpm_debug ("Screen locking is sucessful!, sleepcount = %d", sleepcount);
12374N/A+#else
12374N/A g_return_val_if_fail (GPM_IS_SCREENSAVER (screensaver), FALSE);
12374N/A
12374N/A proxy = dbus_proxy_get_proxy (screensaver->priv->gproxy);
12374N/A@@ -265,6 +289,7 @@
12374N/A break;
12374N/A }
12374N/A }
12374N/A+#endif
12374N/A
12374N/A return TRUE;
12374N/A }
12374N/A--- src/gpm-prefs-core.c.org 2008-02-05 13:56:31.775812000 +0800
12374N/A+++ src/gpm-prefs-core.c 2008-02-05 13:52:48.084206000 +0800
12374N/A@@ -890,6 +890,10 @@
12374N/A gpm_prefs_setup_checkbox (prefs, "checkbutton_notification_sound",
12374N/A GPM_CONF_UI_ENABLE_BEEPING);
12374N/A
12374N/A+ /* set up the screen locking checkbox */
12374N/A+ gpm_prefs_setup_checkbox (prefs, "checkbutton_screen_lock",
12374N/A+ GPM_CONF_UI_ENABLE_SCREEN_LOCK);
12374N/A+
12374N/A if (prefs->priv->has_batteries == TRUE) {
12374N/A /* there's no use case for displaying this option */
12374N/A gtk_widget_hide_all (radiobutton_icon_never);
12374N/A
12374N/A--- src/gpm-control.c.orig 2007-07-27 07:28:18.000000000 +0800
12374N/A+++ src/gpm-control.c 2008-02-13 13:06:29.259536000 +0800
12374N/A@@ -377,6 +377,10 @@
12374N/A {
12374N/A gboolean do_lock;
12374N/A gboolean use_ss_setting;
12374N/A+#ifdef SOLARIS
12374N/A+ gpm_conf_get_bool (control->priv->conf, GPM_CONF_UI_ENABLE_SCREEN_LOCK, &do_lock);
12374N/A+ gpm_debug ("Using custom locking settings (%i)", do_lock);
12374N/A+#else
12374N/A /* This allows us to over-ride the custom lock settings set in gconf
12374N/A with a system default set in gnome-screensaver.
12374N/A See bug #331164 for all the juicy details. :-) */
12374N/A@@ -388,6 +392,7 @@
12374N/A gpm_conf_get_bool (control->priv->conf, policy, &do_lock);
12374N/A gpm_debug ("Using custom locking settings (%i)", do_lock);
12374N/A }
12374N/A+#endif
12374N/A return do_lock;
12374N/A }
12374N/A