[gnome-settings-daemon] Revert "a11y-settings: gnome-shell OSK doesn't need a11y"



commit b10d1902a767c674acea7fa7847156d469704288
Author: Bastien Nocera <hadess hadess net>
Date:   Tue Feb 12 16:16:23 2013 +0100

    Revert "a11y-settings: gnome-shell OSK doesn't need a11y"
    
    It doesn't, but GTK2 apps need this to export the fact that an
    entry is focused for example.
    
    This reverts commit c52025fae0bb12c130450211bb9168fc321a707c.
    
    See https://bugzilla.gnome.org/show_bug.cgi?id=693626

 plugins/a11y-settings/gsd-a11y-settings-manager.c |   23 ++++++++++++++------
 1 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/plugins/a11y-settings/gsd-a11y-settings-manager.c b/plugins/a11y-settings/gsd-a11y-settings-manager.c
index b68ee1e..6e110ba 100644
--- a/plugins/a11y-settings/gsd-a11y-settings-manager.c
+++ b/plugins/a11y-settings/gsd-a11y-settings-manager.c
@@ -61,16 +61,24 @@ apps_settings_changed (GSettings              *settings,
 		       const char             *key,
 		       GsdA11ySettingsManager *manager)
 {
-	gboolean screen_reader;
+	gboolean screen_reader, keyboard;
 
-	if (g_str_equal (key, "screen-reader-enabled") == FALSE)
+	if (g_str_equal (key, "screen-reader-enabled") == FALSE &&
+	    g_str_equal (key, "screen-keyboard-enabled") == FALSE)
 		return;
 
-	g_debug ("screen reader enablement changed");
+	g_debug ("screen reader or OSK enablement changed");
 
 	screen_reader = g_settings_get_boolean (manager->priv->a11y_apps_settings, "screen-reader-enabled");
-	g_debug ("Enabling toolkit-accessibility, screen reader %s", screen_reader ? "enabled" : "disabled");
-	g_settings_set_boolean (manager->priv->interface_settings, "toolkit-accessibility", screen_reader);
+	keyboard = g_settings_get_boolean (manager->priv->a11y_apps_settings, "screen-keyboard-enabled");
+
+	if (screen_reader || keyboard) {
+		g_debug ("Enabling toolkit-accessibility, screen reader or OSK enabled");
+		g_settings_set_boolean (manager->priv->interface_settings, "toolkit-accessibility", TRUE);
+	} else if (screen_reader == FALSE && keyboard == FALSE) {
+		g_debug ("Disabling toolkit-accessibility, screen reader and OSK disabled");
+		g_settings_set_boolean (manager->priv->interface_settings, "toolkit-accessibility", FALSE);
+	}
 }
 
 gboolean
@@ -86,11 +94,12 @@ gsd_a11y_settings_manager_start (GsdA11ySettingsManager *manager,
 	g_signal_connect (G_OBJECT (manager->priv->a11y_apps_settings), "changed",
 			  G_CALLBACK (apps_settings_changed), manager);
 
-	/* If the screen reader is enabled,
+	/* If any of the screen reader or on-screen keyboard are enabled,
 	 * make sure a11y is enabled for the toolkits.
 	 * We don't do the same thing for the reverse so it's possible to
 	 * enable AT-SPI for the toolkits without using an a11y app */
-	if (g_settings_get_boolean (manager->priv->a11y_apps_settings, "screen-reader-enabled"))
+	if (g_settings_get_boolean (manager->priv->a11y_apps_settings, "screen-keyboard-enabled") ||
+	    g_settings_get_boolean (manager->priv->a11y_apps_settings, "screen-reader-enabled"))
 		g_settings_set_boolean (manager->priv->interface_settings, "toolkit-accessibility", TRUE);
 
         gnome_settings_profile_end (NULL);


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