diff options
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/event-editor.c | 1 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-page.c | 11 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-page.h | 2 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 1 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-page.c | 12 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-page.h | 1 |
6 files changed, 25 insertions, 3 deletions
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index 2d72dfab06..705b03b9a8 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -372,6 +372,7 @@ show_meeting (EventEditor *ee) priv = ee->priv; + event_page_set_meeting (priv->event_page, TRUE); if (!priv->meeting_shown) { comp_editor_append_page (COMP_EDITOR (ee), COMP_EDITOR_PAGE (priv->sched_page), diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c index b421d6ee95..f659ad71fe 100644 --- a/calendar/gui/dialogs/event-page.c +++ b/calendar/gui/dialogs/event-page.c @@ -104,6 +104,7 @@ struct _EventPagePrivate { start timezone is then changed, we updated the end timezone to the same value, since 99% of events start and end in one timezone. */ gboolean sync_timezones; + gboolean is_meeting; }; @@ -178,6 +179,7 @@ event_page_init (EventPage *epage) priv->updating = FALSE; priv->sendoptions_shown = FALSE; + priv->is_meeting = FALSE; priv->sync_timezones = FALSE; } @@ -660,6 +662,13 @@ event_page_show_options (EventPage *page) page->priv->sendoptions_shown = TRUE; } +void +event_page_set_meeting (EventPage *page, gboolean set) +{ + g_return_if_fail (IS_EVENT_PAGE (page)); + + page->priv->is_meeting = set; +} /* fill_widgets handler for the event page */ static gboolean @@ -1676,7 +1685,7 @@ source_changed_cb (GtkWidget *widget, ESource *source, gpointer data) comp_editor_notify_client_changed ( COMP_EDITOR (gtk_widget_get_toplevel (priv->main)), client); - if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) + if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS) && priv->is_meeting) event_page_show_options (epage); else event_page_hide_options (epage); diff --git a/calendar/gui/dialogs/event-page.h b/calendar/gui/dialogs/event-page.h index 3659fe5d2d..30b84a1621 100644 --- a/calendar/gui/dialogs/event-page.h +++ b/calendar/gui/dialogs/event-page.h @@ -55,7 +55,7 @@ EventPage *event_page_construct (EventPage *epage); EventPage *event_page_new (void); void event_page_show_options (EventPage *page); void event_page_hide_options (EventPage *page); - +void event_page_set_meeting (EventPage *page, gboolean set); G_END_DECLS diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index f7d56b3671..e0709201fe 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -352,6 +352,7 @@ show_assignment (TaskEditor *te) priv = te->priv; + task_page_set_assignment (priv->task_page, TRUE); if (!priv->assignment_shown) { comp_editor_append_page (COMP_EDITOR (te), COMP_EDITOR_PAGE (priv->meet_page), diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c index f1fd4fea1b..48128c4099 100644 --- a/calendar/gui/dialogs/task-page.c +++ b/calendar/gui/dialogs/task-page.c @@ -78,6 +78,7 @@ struct _TaskPagePrivate { gboolean updating; gboolean sendoptions_shown; + gboolean is_assignment; ESendOptionsDialog *sod; }; @@ -153,6 +154,7 @@ task_page_init (TaskPage *tpage) priv->updating = FALSE; priv->sendoptions_shown = FALSE; + priv->is_assignment = FALSE; } /* Destroy handler for the task page */ @@ -292,6 +294,14 @@ task_page_show_options (TaskPage *page) page->priv->sendoptions_shown = TRUE; } +void +task_page_set_assignment (TaskPage *page, gboolean set) +{ + g_return_if_fail (IS_TASK_PAGE (page)); + + page->priv->is_assignment = set; +} + /* fill_widgets handler for the task page */ static gboolean task_page_fill_widgets (CompEditorPage *page, ECalComponent *comp) @@ -873,7 +883,7 @@ source_changed_cb (GtkWidget *widget, ESource *source, gpointer data) comp_editor_notify_client_changed ( COMP_EDITOR (gtk_widget_get_toplevel (priv->main)), client); - if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS)) + if (e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_REQ_SEND_OPTIONS) && priv->is_assignment) task_page_show_options (tpage); else task_page_hide_options (tpage); diff --git a/calendar/gui/dialogs/task-page.h b/calendar/gui/dialogs/task-page.h index 0b2a98a950..9a061a141b 100644 --- a/calendar/gui/dialogs/task-page.h +++ b/calendar/gui/dialogs/task-page.h @@ -54,6 +54,7 @@ TaskPage *task_page_construct (TaskPage *epage); TaskPage *task_page_new (void); void task_page_show_options (TaskPage *page); void task_page_hide_options (TaskPage *page); +void task_page_set_assignment (TaskPage *page, gboolean set); |