Index: main.c =================================================================== RCS file: /cvs/gpe/base/gpe-calendar/main.c,v retrieving revision 1.92 diff -b -B -u -r1.92 main.c --- main.c 29 Aug 2004 17:09:42 -0000 1.92 +++ main.c 30 Aug 2004 16:23:00 -0000 @@ -75,6 +75,8 @@ guint week_offset = 0; gboolean week_starts_monday = TRUE; gboolean day_view_combined_times; +gchar collected_keys[32] = ""; +gint ccpos = 0; static guint nr_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; @@ -180,6 +182,24 @@ return FALSE; } + +static gboolean +do_insert_text (GtkWidget *window) +{ + GtkWidget *entry; + + entry = g_object_get_data(G_OBJECT(window), "default-entry"); + if (entry) + { + gtk_entry_prepend_text(GTK_ENTRY(entry), collected_keys); + gtk_editable_set_position(GTK_EDITABLE(entry),-1); + memset(collected_keys, 0, sizeof(gchar) * 32); + ccpos = 0; + } + return FALSE; +} + + static void new_appointment (void) { @@ -191,6 +211,7 @@ g_timeout_add(1000, do_reset_new, NULL); appt = new_event (viewtime, 0); + g_timeout_add(500, do_insert_text, (gpointer)appt); gtk_widget_show (appt); } @@ -320,7 +341,11 @@ { if (k->string && isalpha(k->string[0])) { + if (!just_new) new_appointment(); + if (ccpos < 31) + collected_keys[ccpos] = k->string[0]; + ccpos++; return TRUE; } return FALSE; Index: event-ui.c =================================================================== RCS file: /cvs/gpe/base/gpe-calendar/event-ui.c,v retrieving revision 1.108 diff -b -B -u -r1.108 event-ui.c --- event-ui.c 24 Aug 2004 17:20:20 -0000 1.108 +++ event-ui.c 30 Aug 2004 16:23:00 -0000 @@ -1370,6 +1370,7 @@ GTK_WIDGET_SET_FLAGS (summaryentry, GTK_CAN_DEFAULT); gtk_widget_grab_default(summaryentry); + g_object_set_data(G_OBJECT(window), "default-entry", summaryentry); return window; } Index: event-ui.c =================================================================== RCS file: /cvs/gpe/base/gpe-calendar/event-ui.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -r1.109 -r1.110 --- event-ui.c 30 Aug 2004 16:37:54 -0000 1.109 +++ event-ui.c 1 Sep 2004 10:02:30 -0000 1.110 @@ -1400,7 +1400,7 @@ GtkWidget * new_event (time_t t, guint timesel) { - GtkWidget *w = edit_event_window (); + GtkWidget *entry, *w = edit_event_window (); if (w) { @@ -1437,7 +1437,14 @@ gtk_option_menu_set_history (GTK_OPTION_MENU (s->optionmenutype), 0); s->page = 0; gtk_notebook_set_page (GTK_NOTEBOOK (s->notebooktype), s->page); - } + + entry = g_object_get_data(G_OBJECT(w), "default-entry"); + if (entry) + { + gtk_widget_grab_focus(entry); + gtk_editable_select_region(GTK_EDITABLE(entry), 0, 0); + } + } return w; }