From dcb5ea4101ffdd79ff7849867f8c32426e88da7f Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 4 Jul 2001 21:25:30 +0000 Subject: Fixes bug #4018 and what would be the analogous bugs for the other 2001-07-04 Federico Mena Quintero Fixes bug #4018 and what would be the analogous bugs for the other component editors. * gui/dialogs/comp-editor-page.h (CompEditorPageClass): New virtual method "::focus_main_widget()". * gui/dialogs/comp-editor-page.c (comp_editor_page_focus_main_widget): New function. * gui/dialogs/comp-editor.c (comp_editor_append_page): If we are inserting the main page, ask it to focus its main widget. * gui/dialogs/alarm-page.c (alarm_page_focus_main_widget): Implemented. * gui/dialogs/event-page.c (event_page_focus_main_widget): Implemented. #include "e-util/e-categories-config.h". * gui/dialogs/meeting-page.c (meeting_page_focus_main_widget): Implemented. * gui/dialogs/recurrence-page.c (recurrence_page_focus_main_widget): Implemented. * gui/dialogs/task-details-page.c (task_details_page_focus_main_widget): Implemented. * gui/dialogs/task-page.c (task_page_focus_main_widget): Implemented. svn path=/trunk/; revision=10784 --- calendar/gui/dialogs/recurrence-page.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'calendar/gui/dialogs/recurrence-page.c') 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) -- cgit v1.2.3