diff options
Diffstat (limited to 'calendar/gui/dialogs/recurrence-page.c')
-rw-r--r-- | calendar/gui/dialogs/recurrence-page.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index a8961fef7b..54cd1e25c3 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -174,6 +174,7 @@ static void recurrence_page_init (RecurrencePage *rpage); static void recurrence_page_destroy (GtkObject *object); static GtkWidget *recurrence_page_get_widget (CompEditorPage *page); +static void recurrence_page_focus_main_widget (CompEditorPage *page); static void recurrence_page_fill_widgets (CompEditorPage *page, CalComponent *comp); static void recurrence_page_fill_component (CompEditorPage *page, CalComponent *comp); static void recurrence_page_set_summary (CompEditorPage *page, const char *summary); @@ -230,6 +231,7 @@ recurrence_page_class_init (RecurrencePageClass *class) parent_class = gtk_type_class (TYPE_COMP_EDITOR_PAGE); editor_page_class->get_widget = recurrence_page_get_widget; + editor_page_class->focus_main_widget = recurrence_page_focus_main_widget; editor_page_class->fill_widgets = recurrence_page_fill_widgets; editor_page_class->fill_component = recurrence_page_fill_component; editor_page_class->set_summary = recurrence_page_set_summary; @@ -345,6 +347,26 @@ recurrence_page_get_widget (CompEditorPage *page) return priv->main; } +/* focus_main_widget handler for the recurrence page */ +static void +recurrence_page_focus_main_widget (CompEditorPage *page) +{ + RecurrencePage *rpage; + RecurrencePagePrivate *priv; + + rpage = RECURRENCE_PAGE (page); + priv = rpage->priv; + + if (e_dialog_toggle_get (priv->none)) + gtk_widget_grab_focus (priv->none); + else if (e_dialog_toggle_get (priv->simple)) + gtk_widget_grab_focus (priv->simple); + else if (e_dialog_toggle_get (priv->custom)) + gtk_widget_grab_focus (priv->custom); + else + g_assert_not_reached (); +} + /* Fills the widgets with default values */ static void clear_widgets (RecurrencePage *rpage) |