ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #03564
[Branch ~indicator-applet-developers/indicator-applet/applet] Rev 386: Handle a11y updates globally.
Merge authors:
Michael Terry (mterry)
Related merge proposals:
https://code.launchpad.net/~mterry/indicator-applet/global-desc-update-callback/+merge/57533
proposed by: Michael Terry (mterry)
------------------------------------------------------------
revno: 386 [merge]
committer: Ted Gould <ted@xxxxxxxx>
branch nick: trunk
timestamp: Thu 2011-04-14 11:48:40 -0500
message:
Handle a11y updates globally.
modified:
src/applet-main.c
--
lp:indicator-applet
https://code.launchpad.net/~indicator-applet-developers/indicator-applet/applet
Your team ayatana-commits is subscribed to branch lp:indicator-applet.
To unsubscribe from this branch go to https://code.launchpad.net/~indicator-applet-developers/indicator-applet/applet/+edit-subscription
=== modified file 'src/applet-main.c'
--- src/applet-main.c 2011-03-22 20:35:19 +0000
+++ src/applet-main.c 2011-04-13 16:22:14 +0000
@@ -266,10 +266,22 @@
}
static void
-accessible_desc_update (IndicatorObject * io, IndicatorObjectEntry * entry, GtkWidget * menuitem)
-{
- g_return_if_fail(GTK_IS_WIDGET(menuitem));
- update_accessible_desc(entry, menuitem);
+accessible_desc_update_cb (GtkWidget * widget, gpointer userdata)
+{
+ gpointer data = g_object_get_data(G_OBJECT(widget), MENU_DATA_INDICATOR_ENTRY);
+
+ if (data != userdata) {
+ return;
+ }
+
+ IndicatorObjectEntry * entry = (IndicatorObjectEntry *)data;
+ update_accessible_desc(entry, widget);
+}
+
+static void
+accessible_desc_update (IndicatorObject * io, IndicatorObjectEntry * entry, GtkWidget * menubar)
+{
+ gtk_container_foreach(GTK_CONTAINER(menubar), accessible_desc_update_cb, entry);
return;
}
@@ -350,8 +362,6 @@
gtk_menu_shell_insert(GTK_MENU_SHELL(menubar), menuitem, position.menupos);
- g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE, G_CALLBACK(accessible_desc_update), menuitem);
-
if (something_visible) {
if (entry->accessible_desc != NULL) {
update_accessible_desc(entry, menuitem);
@@ -529,6 +539,7 @@
g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED, G_CALLBACK(entry_removed), menubar);
g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_MOVED, G_CALLBACK(entry_moved), menubar);
g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_MENU_SHOW, G_CALLBACK(menu_show), menubar);
+ g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ACCESSIBLE_DESC_UPDATE, G_CALLBACK(accessible_desc_update), menubar);
/* Work on the entries */
GList * entries = indicator_object_get_entries(io);