From 70708440caf29c52e8d2a07872304a4874590fbe Mon Sep 17 00:00:00 2001 From: Damon Chaplin Date: Sun, 28 Oct 2001 02:26:21 +0000 Subject: when the week start day is set to Sunday, we have to be careful to make 2001-10-27 Damon Chaplin * gui/print.c (print_week_view): (range_selector_new): when the week start day is set to Sunday, we have to be careful to make sure we print the correct week, since the previous Saturday is actually printed first. Fixes bug #13687. (print_week_summary): always set compress_weekend to true if multi_week_view is FALSE (i.e. we are printing the week view). Fixes bug #13688. * gui/e-itip-control.c (send_freebusy): use the timezones from the DTSTART and DTEND. (write_label_piece): output the date-time and the timezone after it. Note that we may want to convert it to the current timezone and display that as well. Also converted COMPLETED to the current timezone. And fixed all uses of old timezone functions. * gui/dialogs/comp-editor.c (commit_all_fields): added function to set the focus in the window to NULL, so all fields lose their focus, so they emit "changed" signals and update their values if needed. We call this when most menu commands are used, e.g. 'Save and Close', 'Print' etc. Fixes bug #11434. In future we should also check fields are valid and show dialogs if they are not. * gui/calendar-model.c (get_completed): use the completed value properly. Fixes bug #13694. * cal-util/timeutil.c (icaltimetype_to_tm_with_zone): don't check from_zone and to_zone != NULL. A NULL zone is valid, it is for floating times. svn path=/trunk/; revision=14266 --- calendar/gui/dialogs/comp-editor.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'calendar/gui/dialogs') diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index dc7d01cbde..4f83b02dc4 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -1008,12 +1008,27 @@ comp_editor_focus (CompEditor *editor) raise_and_focus (priv->window); } +/* This sets the focus to the toplevel, so any field being edited is committed. + FIXME: In future we may also want to check some of the fields are valid, + e.g. the EDateEdit fields. */ +static void +commit_all_fields (CompEditor *editor) +{ + CompEditorPrivate *priv; + + priv = editor->priv; + + gtk_window_set_focus (GTK_WINDOW (priv->window), NULL); +} + /* Menu Commands */ static void save_cmd (GtkWidget *widget, gpointer data) { CompEditor *editor = COMP_EDITOR (data); + commit_all_fields (editor); + save_comp_with_send (editor); } @@ -1022,6 +1037,8 @@ save_close_cmd (GtkWidget *widget, gpointer data) { CompEditor *editor = COMP_EDITOR (data); + commit_all_fields (editor); + if (save_comp_with_send (editor)) close_dialog (editor); } @@ -1091,6 +1108,8 @@ save_as_cmd (GtkWidget *widget, gpointer data) priv = editor->priv; + commit_all_fields (editor); + fs = GTK_FILE_SELECTION (gtk_file_selection_new (_("Save As..."))); path = g_strdup_printf ("%s/", g_get_home_dir ()); gtk_file_selection_set_filename (fs, path); @@ -1131,6 +1150,8 @@ print_cmd (GtkWidget *widget, gpointer data) CompEditor *editor = COMP_EDITOR (data); CalComponent *comp; + commit_all_fields (editor); + comp = comp_editor_get_current_comp (editor); print_comp (comp, editor->priv->client, FALSE); gtk_object_unref (GTK_OBJECT (comp)); @@ -1142,6 +1163,8 @@ print_preview_cmd (GtkWidget *widget, gpointer data) CompEditor *editor = COMP_EDITOR (data); CalComponent *comp; + commit_all_fields (editor); + comp = comp_editor_get_current_comp (editor); print_comp (comp, editor->priv->client, TRUE); gtk_object_unref (GTK_OBJECT (comp)); @@ -1163,6 +1186,8 @@ close_cmd (GtkWidget *widget, gpointer data) { CompEditor *editor = COMP_EDITOR (data); + commit_all_fields (editor); + if (prompt_to_save_changes (editor, TRUE)) close_dialog (editor); } -- cgit v1.2.3