diff options
Diffstat (limited to 'calendar/gui/dialogs/recurrence-page.c')
-rw-r--r-- | calendar/gui/dialogs/recurrence-page.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/recurrence-page.c b/calendar/gui/dialogs/recurrence-page.c index 0868ed5cca..cec2685a7c 100644 --- a/calendar/gui/dialogs/recurrence-page.c +++ b/calendar/gui/dialogs/recurrence-page.c @@ -508,9 +508,13 @@ sensitize_recur_widgets (RecurrencePage *rpage) RecurrencePagePrivate *priv; enum recur_type type; GtkWidget *label; + gboolean read_only; priv = rpage->priv; + if (!e_cal_is_read_only (COMP_EDITOR_PAGE (rpage)->client, &read_only, NULL)) + read_only = TRUE; + type = e_dialog_radio_get (priv->none, type_map); /* We can't preview that well for instances right now */ @@ -2345,6 +2349,14 @@ init_widgets (RecurrencePage *rpage) +static void +client_changed_cb (CompEditorPage *page, ECal *client, gpointer user_data) +{ + RecurrencePage *rpage = RECURRENCE_PAGE (page); + + sensitize_recur_widgets (rpage); +} + /** * recurrence_page_construct: * @rpage: A recurrence page. @@ -2377,6 +2389,9 @@ recurrence_page_construct (RecurrencePage *rpage) init_widgets (rpage); + g_signal_connect (G_OBJECT (rpage), "client_changed", + G_CALLBACK (client_changed_cb), NULL); + return rpage; } |