Merge lp:~apinheiro/unity/Bug723699 into lp:unity

Proposed by Alejandro Piñeiro
Status: Merged
Merged at revision: 886
Proposed branch: lp:~apinheiro/unity/Bug723699
Merge into: lp:unity
Diff against target: 144 lines (+34/-35)
3 files modified
services/CMakeLists.txt (+1/-1)
services/panel-a11y.c (+15/-11)
src/unitya11y.cpp (+18/-23)
To merge this branch: bzr merge lp:~apinheiro/unity/Bug723699
Reviewer Review Type Date Requested Status
David Barth (community) Approve
Rodrigo Moya (community) Approve
Alex Launi Pending
Review via email: mp+50963@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Rodrigo Moya (rodrigo-moya) wrote :

Looks good

review: Approve
Revision history for this message
David Barth (dbarth) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'services/CMakeLists.txt'
2--- services/CMakeLists.txt 2011-02-17 13:03:25 +0000
3+++ services/CMakeLists.txt 2011-02-23 17:33:03 +0000
4@@ -2,7 +2,7 @@
5 # Panel Service
6 #
7 find_package(PkgConfig)
8-pkg_check_modules(SERVICE_DEPS REQUIRED gobject-2.0 gio-2.0 gtk+-2.0 gthread-2.0 indicator x11)
9+pkg_check_modules(SERVICE_DEPS REQUIRED gobject-2.0 gio-2.0 gtk+-2.0 gthread-2.0 indicator x11 gconf-2.0)
10
11 execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} indicator --variable indicatordir OUTPUT_VARIABLE _indicatordir OUTPUT_STRIP_TRAILING_WHITESPACE)
12 execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} indicator --variable iconsdir OUTPUT_VARIABLE _iconsdir OUTPUT_STRIP_TRAILING_WHITESPACE)
13
14=== modified file 'services/panel-a11y.c'
15--- services/panel-a11y.c 2011-01-30 17:46:02 +0000
16+++ services/panel-a11y.c 2011-02-23 17:33:03 +0000
17@@ -16,15 +16,16 @@
18 * Authored by: Rodrigo Moya <rodrigo.moya@canonical.com>
19 */
20
21+#include <gconf/gconf-client.h>
22 #include <gio/gio.h>
23+
24 #include "panel-a11y.h"
25 #include "panel-util-accessible.h"
26
27 static gboolean a11y_initialized = FALSE;
28
29 #define INIT_METHOD "gnome_accessibility_module_init"
30-#define DESKTOP_SCHEMA "org.gnome.desktop.interface"
31-#define ACCESSIBILITY_ENABLED_KEY "accessibility"
32+#define A11Y_GCONF_KEY "/desktop/gnome/interface/accessibility"
33 #define AT_SPI_SCHEMA "org.a11y.atspi"
34 #define ATK_BRIDGE_LOCATION_KEY "atk-bridge-location"
35
36@@ -53,16 +54,19 @@
37 static gboolean
38 should_enable_a11y (void)
39 {
40- GSettings *desktop_settings = NULL;
41+ GConfClient *client = NULL;
42 gboolean value = FALSE;
43-
44- if (!has_gsettings_schema (DESKTOP_SCHEMA))
45- return FALSE;
46-
47- desktop_settings = g_settings_new (DESKTOP_SCHEMA);
48- value = g_settings_get_boolean (desktop_settings, ACCESSIBILITY_ENABLED_KEY);
49-
50- g_object_unref (desktop_settings);
51+ GError *error = NULL;
52+
53+ client = gconf_client_get_default ();
54+ value = gconf_client_get_bool (client, A11Y_GCONF_KEY, &error);
55+ if (error != NULL)
56+ {
57+ g_warning ("Error getting gconf variable %s, a11y disabled by default",
58+ A11Y_GCONF_KEY);
59+ g_error_free (error);
60+ }
61+ g_object_unref (client);
62
63 return value;
64 }
65
66=== modified file 'src/unitya11y.cpp'
67--- src/unitya11y.cpp 2011-02-23 12:03:48 +0000
68+++ src/unitya11y.cpp 2011-02-23 17:33:03 +0000
69@@ -20,6 +20,7 @@
70 #include <gio/gio.h>
71 #include <gmodule.h>
72 #include <stdio.h>
73+#include <gconf/gconf-client.h>
74
75 #include "unitya11y.h"
76 #include "unity-util-accessible.h"
77@@ -43,6 +44,11 @@
78
79 static gboolean a11y_initialized = FALSE;
80
81+#define INIT_METHOD "gnome_accessibility_module_init"
82+#define A11Y_GCONF_KEY "/desktop/gnome/interface/accessibility"
83+#define AT_SPI_SCHEMA "org.a11y.atspi"
84+#define ATK_BRIDGE_LOCATION_KEY "atk-bridge-location"
85+
86 static void
87 unity_a11y_restore_environment (void)
88 {
89@@ -56,12 +62,6 @@
90 g_type_class_unref (g_type_class_ref (UNITY_TYPE_UTIL_ACCESSIBLE));
91 }
92
93-#define INIT_METHOD "gnome_accessibility_module_init"
94-#define DESKTOP_SCHEMA "org.gnome.desktop.interface"
95-#define ACCESSIBILITY_ENABLED_KEY "toolkit-accessibility"
96-#define AT_SPI_SCHEMA "org.a11y.atspi"
97-#define ATK_BRIDGE_LOCATION_KEY "atk-bridge-location"
98-
99 static gboolean
100 has_gsettings_schema (const gchar *schema)
101 {
102@@ -87,19 +87,19 @@
103 static gboolean
104 should_enable_a11y (void)
105 {
106- GSettings *desktop_settings = NULL;
107+ GConfClient *client = NULL;
108 gboolean value = FALSE;
109-
110- if (g_getenv ("UNITY_A11Y_DISABLE"))
111- return FALSE;
112-
113- if (!has_gsettings_schema (DESKTOP_SCHEMA))
114- return FALSE;
115-
116- desktop_settings = g_settings_new (DESKTOP_SCHEMA);
117- value = g_settings_get_boolean (desktop_settings, ACCESSIBILITY_ENABLED_KEY);
118-
119- g_object_unref (desktop_settings);
120+ GError *error = NULL;
121+
122+ client = gconf_client_get_default ();
123+ value = gconf_client_get_bool (client, A11Y_GCONF_KEY, &error);
124+ if (error != NULL)
125+ {
126+ g_warning ("Error getting gconf variable %s, a11y disabled by default",
127+ A11Y_GCONF_KEY);
128+ g_error_free (error);
129+ }
130+ g_object_unref (client);
131
132 return value;
133 }
134@@ -355,11 +355,6 @@
135
136 unity_a11y_restore_environment ();
137
138- /* FIXME: gsettings is causing some crashes checking if a11y is
139- enabled, so we are move to gconf, meanwhile we require a sanity
140- commit. */
141- return;
142-
143 if (!should_enable_a11y ())
144 return;
145