[gnome-settings-daemon] Add keybinding schema to enable/disable touchpad
- From: Bastien Nocera <hadess src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon] Add keybinding schema to enable/disable touchpad
- Date: Mon, 15 Feb 2010 14:09:37 +0000 (UTC)
commit 221049d0e48243b236ba6de01acf416df3dabfec
Author: Peter Hutterer <peter hutterer who-t net>
Date: Tue Oct 27 14:39:24 2009 +1000
Add keybinding schema to enable/disable touchpad
Signed-off-by: Peter Hutterer <peter hutterer who-t net>
https://bugzilla.gnome.org/show_bug.cgi?id=594831
...ps_gnome_settings_daemon_keybindings.schemas.in | 11 +++++++++++
plugins/media-keys/acme.h | 2 ++
plugins/media-keys/gsd-media-keys-manager.c | 14 ++++++++++++++
3 files changed, 27 insertions(+), 0 deletions(-)
---
diff --git a/data/apps_gnome_settings_daemon_keybindings.schemas.in b/data/apps_gnome_settings_daemon_keybindings.schemas.in
index c583ae3..c5fe47f 100644
--- a/data/apps_gnome_settings_daemon_keybindings.schemas.in
+++ b/data/apps_gnome_settings_daemon_keybindings.schemas.in
@@ -3,6 +3,17 @@
<schemalist>
<schema>
+ <key>/schemas/apps/gnome_settings_daemon/keybindings/touchpad</key>
+ <applyto>/apps/gnome_settings_daemon/keybindings/touchpad</applyto>
+ <type>string</type>
+ <default>XF86TouchpadToggle</default>
+ <locale name="C">
+ <short>Toggle touchpad</short>
+ <long>Binding to enable or disable the touchpad.</long>
+ </locale>
+ </schema>
+
+ <schema>
<key>/schemas/apps/gnome_settings_daemon/volume_step</key>
<applyto>/apps/gnome_settings_daemon/volume_step</applyto>
<type>int</type>
diff --git a/plugins/media-keys/acme.h b/plugins/media-keys/acme.h
index ef602fe..8ceae21 100644
--- a/plugins/media-keys/acme.h
+++ b/plugins/media-keys/acme.h
@@ -27,6 +27,7 @@
#define GCONF_MISC_DIR "/apps/gnome_settings_daemon"
enum {
+ TOUCHPAD_KEY,
MUTE_KEY,
VOLUME_DOWN_KEY,
VOLUME_UP_KEY,
@@ -53,6 +54,7 @@ static struct {
const char *gconf_key;
Key *key;
} keys[HANDLED_KEYS] = {
+ { TOUCHPAD_KEY, GCONF_BINDING_DIR "/touchpad", NULL },
{ MUTE_KEY, GCONF_BINDING_DIR "/volume_mute",NULL },
{ VOLUME_DOWN_KEY, GCONF_BINDING_DIR "/volume_down", NULL },
{ VOLUME_UP_KEY, GCONF_BINDING_DIR "/volume_up", NULL },
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 8e0d3dd..871a740 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -60,6 +60,8 @@
#define GSD_MEDIA_KEYS_DBUS_PATH GSD_DBUS_PATH "/MediaKeys"
#define GSD_MEDIA_KEYS_DBUS_NAME GSD_DBUS_NAME ".MediaKeys"
+#define TOUCHPAD_ENABLED_KEY "/desktop/gnome/peripherals/touchpad/touchpad_enabled"
+
#define VOLUME_STEP 6 /* percents for one volume button press */
#define MAX_VOLUME 65536.0
@@ -607,6 +609,15 @@ do_eject_action (GsdMediaKeysManager *manager)
g_free (command);
}
+static void
+do_touchpad_action (GsdMediaKeysManager *manager)
+{
+ GConfClient *client = manager->priv->conf_client;
+ gboolean state = gconf_client_get_bool (client, TOUCHPAD_ENABLED_KEY, NULL);
+
+ gconf_client_set_bool (client, TOUCHPAD_ENABLED_KEY, !state, NULL);
+}
+
#ifdef HAVE_PULSE
static void
update_dialog (GsdMediaKeysManager *manager,
@@ -856,6 +867,9 @@ do_action (GsdMediaKeysManager *manager,
char *path;
switch (type) {
+ case TOUCHPAD_KEY:
+ do_touchpad_action (manager);
+ break;
case MUTE_KEY:
case VOLUME_DOWN_KEY:
case VOLUME_UP_KEY:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]