diff options
Diffstat (limited to 'a11y/calendar/ea-gnome-calendar.c')
-rw-r--r-- | a11y/calendar/ea-gnome-calendar.c | 26 |
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 } |