aboutsummaryrefslogtreecommitdiffstats
path: root/a11y/calendar/ea-gnome-calendar.c
diff options
context:
space:
mode:
Diffstat (limited to 'a11y/calendar/ea-gnome-calendar.c')
-rw-r--r--a11y/calendar/ea-gnome-calendar.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/a11y/calendar/ea-gnome-calendar.c b/a11y/calendar/ea-gnome-calendar.c
index 20361f1451..407b8ed95f 100644
--- a/a11y/calendar/ea-gnome-calendar.c
+++ b/a11y/calendar/ea-gnome-calendar.c
@@ -117,14 +117,14 @@ ea_gnome_calendar_new (GtkWidget *widget)
/* listen on view type change
*/
+ g_signal_connect (widget, "dates_shown_changed",
+ G_CALLBACK (ea_gcal_dates_change_cb),
+ accessible);
notebook = gnome_calendar_get_view_notebook_widget (gcal);
if (notebook) {
g_signal_connect (notebook, "switch_page",
G_CALLBACK (ea_gcal_switch_view_cb),
accessible);
- g_signal_connect (widget, "dates_shown_changed",
- G_CALLBACK (ea_gcal_dates_change_cb),
- accessible);
}
#ifdef ACC_DEBUG
@@ -213,10 +213,19 @@ static void
ea_gcal_switch_view_cb (GtkNotebook *widget, GtkNotebookPage *page,
guint index, gpointer data)
{
- g_signal_emit_by_name (G_OBJECT(data), "children_changed",
- 0, NULL, NULL);
+ GtkWidget *new_widget;
+
+ new_widget = gtk_notebook_get_nth_page (widget, index);
+
+ /* views are always the second child in gnome calendar
+ */
+ if (new_widget)
+ g_signal_emit_by_name (G_OBJECT(data), "children_changed::add",
+ 1, gtk_widget_get_accessible (new_widget), NULL);
+
#ifdef ACC_DEBUG
- printf ("AccDebug: switch view: children_changed notified\n");
+ printf ("AccDebug: view switch to widget %p (index=%d) \n",
+ new_widget, index);
#endif
}
@@ -231,4 +240,9 @@ ea_gcal_dates_change_cb (GnomeCalendar *gcal, gpointer data)
new_name = calendar_get_text_for_folder_bar_label (gcal);
atk_object_set_name (ATK_OBJECT(data), new_name);
+ g_signal_emit_by_name (data, "visible_data_changed");
+
+#ifdef ACC_DEBUG
+ printf ("AccDebug: calendar dates changed, label=%s\n", new_name);
+#endif
}