From 23ef00df35512cfe6285ba45c0b20f635faee111 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Tue, 14 Apr 1998 00:59:30 +0000 Subject: New function to let the outside world decide which child to focus. 1998-04-13 Federico Mena Quintero * gncal-full-day.h: * gncal-full-day.c (gncal_full_day_focus_child): New function to let the outside world decide which child to focus. (gncal_full_day_focus_child): Bleah. We have to synthesize a click because GtkText will not set the cursor when you focus it. * gnome-cal.c (day_view_range_activated): Focus the new child in the full day widget. svn path=/trunk/; revision=131 --- calendar/gui/gncal-full-day.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'calendar/gui/gncal-full-day.c') diff --git a/calendar/gui/gncal-full-day.c b/calendar/gui/gncal-full-day.c index dc61018ecd..f32c8c482c 100644 --- a/calendar/gui/gncal-full-day.c +++ b/calendar/gui/gncal-full-day.c @@ -1662,6 +1662,42 @@ gncal_full_day_selection_range (GncalFullDay *fullday, time_t *lower, time_t *up return TRUE; } +void +gncal_full_day_focus_child (GncalFullDay *fullday, iCalObject *object) +{ + GList *children; + Child *child; + GdkEvent event; + + g_return_if_fail (fullday != NULL); + g_return_if_fail (object != NULL); + + for (children = fullday->children; children; children = children->next) { + child = children->data; + + if (child->ico == object) { + gtk_widget_grab_focus (child->widget); + + /* We synthesize a click because GtkText will not set the cursor and + * the user will not be able to type-- this has to be fixed in + * GtkText. */ + + memset (&event, 0, sizeof (event)); + + event.type = GDK_BUTTON_PRESS; + event.button.window = child->widget->window; + event.button.time = GDK_CURRENT_TIME; + event.button.x = 0; + event.button.y = 0; + event.button.button = 1; + + gtk_widget_event (child->widget, &event); + + break; + } + } +} + static void range_activated (GncalFullDay *fullday) { -- cgit v1.2.3