aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/gncal-full-day.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/gncal-full-day.c')
-rw-r--r--calendar/gui/gncal-full-day.c36
1 files changed, 36 insertions, 0 deletions
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)
{