[gnome-settings-daemon] media-keys: Add magnifier in/out keybindings



commit 69b04f07a978a969edeccc995850c318e2461562
Author: Bastien Nocera <hadess hadess net>
Date:   Wed Feb 23 16:38:25 2011 +0000

    media-keys: Add magnifier in/out keybindings

 ...ngs-daemon.plugins.media-keys.gschema.xml.in.in |   10 ++++++++
 plugins/media-keys/acme.h                          |    4 +++
 plugins/media-keys/gsd-media-keys-manager.c        |   24 ++++++++++++++++++++
 3 files changed, 38 insertions(+), 0 deletions(-)
---
diff --git a/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in b/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in
index 50a0777..81de8a2 100644
--- a/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in
+++ b/data/org.gnome.settings-daemon.plugins.media-keys.gschema.xml.in.in
@@ -140,5 +140,15 @@
       <_summary>Toggle contrast</_summary>
       <_description>Binding to toggle the interface contrast</_description>
     </key>
+    <key name="magnifier-zoom-in" type="s">
+      <default>''</default>
+      <_summary>Magnifier zoom in</_summary>
+      <_description>Binding for the magnifier to zoom in</_description>
+    </key>
+    <key name="magnifier-zoom-out" type="s">
+      <default>''</default>
+      <_summary>Magnifier zoom out</_summary>
+      <_description>Binding for the magnifier to zoom out</_description>
+    </key>
   </schema>
 </schemalist>
diff --git a/plugins/media-keys/acme.h b/plugins/media-keys/acme.h
index 9d1cbab..fd5358f 100644
--- a/plugins/media-keys/acme.h
+++ b/plugins/media-keys/acme.h
@@ -60,6 +60,8 @@ typedef enum {
         INCREASE_TEXT_KEY,
         DECREASE_TEXT_KEY,
         TOGGLE_CONTRAST_KEY,
+        MAGNIFIER_ZOOM_IN_KEY,
+        MAGNIFIER_ZOOM_OUT_KEY,
         HANDLED_KEYS
 } MediaKeyType;
 
@@ -106,6 +108,8 @@ static struct {
 	{ INCREASE_TEXT_KEY, "increase-text-size", NULL, NULL },
 	{ DECREASE_TEXT_KEY, "decrease-text-size", NULL, NULL },
 	{ TOGGLE_CONTRAST_KEY, "toggle-contrast", NULL, NULL },
+	{ MAGNIFIER_ZOOM_IN_KEY, "magnifier-zoom-in", NULL, NULL },
+	{ MAGNIFIER_ZOOM_OUT_KEY, "magnifier-zoom-out", NULL, NULL },
 };
 
 #endif /* __ACME_H__ */
diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c
index 284880d..237e727 100644
--- a/plugins/media-keys/gsd-media-keys-manager.c
+++ b/plugins/media-keys/gsd-media-keys-manager.c
@@ -1179,6 +1179,26 @@ do_text_size_action (GsdMediaKeysManager *manager,
 }
 
 static void
+do_magnifier_zoom_action (GsdMediaKeysManager *manager,
+			  MediaKeyType         type)
+{
+	GSettings *settings;
+	gdouble offset, value;
+
+	if (type == MAGNIFIER_ZOOM_IN_KEY)
+		offset = 1.0;
+	else
+		offset = -1.0;
+
+	settings = g_settings_new ("org.gnome.desktop.a11y.magnifier");
+	value = g_settings_get_double (settings, "mag-factor");
+	value += offset;
+	value = roundl (value);
+	g_settings_set_double (settings, "mag-factor", value);
+	g_object_unref (settings);
+}
+
+static void
 do_toggle_contrast_action (GsdMediaKeysManager *manager)
 {
 	gboolean high_contrast;
@@ -1312,6 +1332,10 @@ do_action (GsdMediaKeysManager *manager,
 	case DECREASE_TEXT_KEY:
 		do_text_size_action (manager, type);
 		break;
+	case MAGNIFIER_ZOOM_IN_KEY:
+	case MAGNIFIER_ZOOM_OUT_KEY:
+		do_magnifier_zoom_action (manager, type);
+		break;
 	case TOGGLE_CONTRAST_KEY:
 		do_toggle_contrast_action (manager);
 		break;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]