diff --git a/data/ui/edit-dialog.ui b/data/ui/edit-dialog.ui
index e6f169a5..26cc430f 100644
--- a/data/ui/edit-dialog.ui
+++ b/data/ui/edit-dialog.ui
@@ -311,7 +311,6 @@
@@ -326,7 +325,6 @@
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index 82bb8246..2a55f59b 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -260,14 +260,21 @@ static void
gcal_edit_dialog_set_writable (GcalEditDialog *dialog,
gboolean writable)
{
- if (dialog->writable != writable)
- {
- dialog->writable = writable;
+ gboolean all_day;
- gtk_button_set_label (GTK_BUTTON (dialog->done_button), writable ? _("Save") : _("Done"));
+ if (dialog->writable == writable)
+ return;
- g_object_notify (G_OBJECT (dialog), "writable");
- }
+ all_day = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->all_day_check));
+
+ gtk_widget_set_sensitive (dialog->start_time_selector, !all_day && writable);
+ gtk_widget_set_sensitive (dialog->end_time_selector, !all_day && writable);
+
+ gtk_button_set_label (GTK_BUTTON (dialog->done_button), writable ? _("Save") : _("Done"));
+
+ dialog->writable = writable;
+
+ g_object_notify (G_OBJECT (dialog), "writable");
}
static void