summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--atspi/atspi-accessible.c5
-rw-r--r--atspi/atspi-event-listener.c32
-rw-r--r--atspi/atspi-misc-private.h2
-rw-r--r--atspi/atspi-misc.c30
4 files changed, 37 insertions, 32 deletions
diff --git a/atspi/atspi-accessible.c b/atspi/atspi-accessible.c
index fd6737d5..de99fbb7 100644
--- a/atspi/atspi-accessible.c
+++ b/atspi/atspi-accessible.c
@@ -50,6 +50,7 @@ screen_reader_signal_watcher (GSignalInvocationHint *signal_hint,
DBusMessageIter iter, iter_struct, iter_variant, iter_array;
dbus_int32_t detail1, detail2;
const char *detail = "";
+ gchar *dbus_name;
object = g_value_get_object (param_values + 0);
g_return_val_if_fail (ATSPI_IS_ACCESSIBLE(object), FALSE);
@@ -60,9 +61,11 @@ screen_reader_signal_watcher (GSignalInvocationHint *signal_hint,
detail2 = g_value_get_int (param_values + 2);
accessible = ATSPI_ACCESSIBLE (object);
+ dbus_name = _atspi_strdup_and_adjust_for_dbus (name);
signal = dbus_message_new_signal (ATSPI_DBUS_PATH_SCREEN_READER,
ATSPI_DBUS_INTERFACE_EVENT_SCREEN_READER,
- "RegionChanged");
+ dbus_name);
+ g_free (dbus_name);
dbus_message_iter_init_append (signal, &iter);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &detail);
dbus_message_iter_append_basic (&iter, DBUS_TYPE_INT32, &detail1);
diff --git a/atspi/atspi-event-listener.c b/atspi/atspi-event-listener.c
index 249890b6..03e930ae 100644
--- a/atspi/atspi-event-listener.c
+++ b/atspi/atspi-event-listener.c
@@ -332,40 +332,10 @@ demarshal_rect (DBusMessageIter *iter, AtspiRect *rect)
return TRUE;
}
-static gchar *
-strdup_and_adjust_for_dbus (const char *s)
-{
- gchar *d = g_strdup (s);
- gchar *p;
- int parts = 0;
-
- if (!d)
- return NULL;
-
- for (p = d; *p; p++)
- {
- if (*p == '-')
- {
- memmove (p, p + 1, g_utf8_strlen (p, -1));
- *p = toupper (*p);
- }
- else if (*p == ':')
- {
- parts++;
- if (parts == 2)
- break;
- p [1] = toupper (p [1]);
- }
- }
-
- d [0] = toupper (d [0]);
- return d;
-}
-
static gboolean
convert_event_type_to_dbus (const char *eventType, char **categoryp, char **namep, char **detailp, GPtrArray **matchrule_array)
{
- gchar *tmp = strdup_and_adjust_for_dbus (eventType);
+ gchar *tmp = _atspi_strdup_and_adjust_for_dbus (eventType);
char *category = NULL, *name = NULL, *detail = NULL;
char *saveptr = NULL;
diff --git a/atspi/atspi-misc-private.h b/atspi/atspi-misc-private.h
index f0b5adb7..fb78b02b 100644
--- a/atspi/atspi-misc-private.h
+++ b/atspi/atspi-misc-private.h
@@ -168,6 +168,8 @@ gboolean _atspi_set_allow_sync (gboolean val);
void _atspi_set_error_no_sync (GError **error);
gboolean _atspi_prepare_screen_reader_interface ();
+
+gchar * _atspi_strdup_and_adjust_for_dbus (const char *s);
G_END_DECLS
#endif /* _ATSPI_MISC_PRIVATE_H_ */
diff --git a/atspi/atspi-misc.c b/atspi/atspi-misc.c
index 9e8595ad..f49041ec 100644
--- a/atspi/atspi-misc.c
+++ b/atspi/atspi-misc.c
@@ -1899,3 +1899,33 @@ _atspi_prepare_screen_reader_interface ()
dbus_connection_add_filter (a11y_bus, screen_reader_filter, NULL, NULL);
return TRUE;
}
+
+gchar *
+_atspi_strdup_and_adjust_for_dbus (const char *s)
+{
+ gchar *d = g_strdup (s);
+ gchar *p;
+ int parts = 0;
+
+ if (!d)
+ return NULL;
+
+ for (p = d; *p; p++)
+ {
+ if (*p == '-')
+ {
+ memmove (p, p + 1, g_utf8_strlen (p, -1));
+ *p = toupper (*p);
+ }
+ else if (*p == ':')
+ {
+ parts++;
+ if (parts == 2)
+ break;
+ p [1] = toupper (p [1]);
+ }
+ }
+
+ d [0] = toupper (d [0]);
+ return d;
+}