patches/gnome-settings-daemon-10-dispswitch-keybinding.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 17687 9ee9539fa143
child 21151 4873a2ec997c
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446

diff -urB gnome-settings-daemon-2.27.91/data/apps_gnome_settings_daemon_keybindings.schemas.in gnome-settings-daemon-2.27.91-modify/data/apps_gnome_settings_daemon_keybindings.schemas.in
--- gnome-settings-daemon-2.27.91/data/apps_gnome_settings_daemon_keybindings.schemas.in	2009-09-03 13:51:45.244964587 +0800
+++ gnome-settings-daemon-2.27.91-modify/data/apps_gnome_settings_daemon_keybindings.schemas.in	2009-09-03 14:01:15.295251212 +0800
@@ -132,6 +132,17 @@
             </locale>
         </schema>
 
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/screensaver_alternative</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/screensaver_alternative</applyto>
+            <type>string</type>
+            <default>XF86ScreenSaver</default>
+            <locale name="C">
+                <short>Lock screen (Alt Binding)</short>
+                <long>Alternative key binding to lock the screen.</long>
+            </locale>
+        </schema>
+
 
         <schema>
             <key>/schemas/apps/gnome_settings_daemon/keybindings/help</key>
@@ -237,5 +248,16 @@
             </locale>
         </schema>
 
+        <schema>
+            <key>/schemas/apps/gnome_settings_daemon/keybindings/display</key>
+            <applyto>/apps/gnome_settings_daemon/keybindings/display</applyto>
+            <type>string</type>
+            <default>XF86Display</default>
+            <locale name="C">
+                <short>Toggle External Display</short>
+                <long>Binding to toggle the use of an external display.</long>
+            </locale>
+        </schema>
+
     </schemalist>
 </gconfschemafile>
diff -urB gnome-settings-daemon-2.27.91/plugins/media-keys/acme.h gnome-settings-daemon-2.27.91-modify/plugins/media-keys/acme.h
--- gnome-settings-daemon-2.27.91/plugins/media-keys/acme.h	2009-05-04 02:15:30.000000000 +0800
+++ gnome-settings-daemon-2.27.91-modify/plugins/media-keys/acme.h	2009-09-03 14:01:15.295494499 +0800
@@ -46,6 +47,7 @@
         STOP_KEY,
         PREVIOUS_KEY,
         NEXT_KEY,
+        DISPLAY_KEY, /* To allow mapping to dispswitch functionality */
         HANDLED_KEYS
 };
 
@@ -73,6 +76,7 @@
         { STOP_KEY, GCONF_BINDING_DIR "/stop", NULL },
         { PREVIOUS_KEY, GCONF_BINDING_DIR "/previous", NULL },
         { NEXT_KEY, GCONF_BINDING_DIR "/next", NULL },
+        { DISPLAY_KEY, GCONF_BINDING_DIR "/display", NULL },
 };
 
 #endif /* __ACME_H__ */
diff -urB gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.27.91-modify/plugins/media-keys/gsd-media-keys-manager.c
--- gnome-settings-daemon-2.27.91/plugins/media-keys/gsd-media-keys-manager.c	2009-09-03 13:51:45.249282917 +0800
+++ gnome-settings-daemon-2.27.91-modify/plugins/media-keys/gsd-media-keys-manager.c	2009-09-03 14:01:15.296333829 +0800
@@ -993,6 +1015,9 @@
         case NEXT_KEY:
                 return do_multimedia_player_action (manager, "Next");
                 break;
+        case DISPLAY_KEY:
+                do_display_action (manager);
+                break;
         default:
                 g_assert_not_reached ();
         }
diff -ruN gnome-settings-daemon-2.29.92.orig/plugins/media-keys/gsd-media-keys-manager.c gnome-settings-daemon-2.29.92/plugins/media-keys/gsd-media-keys-manager.c
--- gnome-settings-daemon-2.29.92.orig/plugins/media-keys/gsd-media-keys-manager.c	2010-03-12 01:52:13.988956089 +0000
+++ gnome-settings-daemon-2.29.92/plugins/media-keys/gsd-media-keys-manager.c	2010-03-12 01:52:44.187578200 +0000
@@ -629,6 +629,27 @@
         gconf_client_set_bool (client, TOUCHPAD_ENABLED_KEY, !state, NULL);
 }
 
+static void
+do_display_action (GsdMediaKeysManager *manager)
+{
+        gchar *command;
+        gchar *dispswitch;
+
+        if ((dispswitch = g_find_program_in_path ("dispswitch")) == NULL ) {
+                /* Fall back to known location */
+                dispswitch = g_strdup("/usr/X11/bin/dispswitch");
+        }
+
+        command = g_strdup_printf("%s -toggle", dispswitch );
+
+        if ( command != NULL ) {
+                execute (manager, command, FALSE, FALSE);
+        }
+
+        g_free (dispswitch);
+        g_free (command);
+}
+
 #ifdef HAVE_PULSE
 static void
 update_dialog (GsdMediaKeysManager *manager,