diff options
author | JP Rosevear <jpr@ximian.com> | 2003-04-08 04:02:52 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2003-04-08 04:02:52 +0800 |
commit | 18b0c8df946cd8dd936c5a81bb2f143371d28060 (patch) | |
tree | e9bd3b2efaa00dfb8cdcc8929c072f432650e2fb /calendar | |
parent | 5c0dca8bd51d32374d72ca870d0bfa11df8f1e78 (diff) | |
download | gsoc2013-evolution-18b0c8df946cd8dd936c5a81bb2f143371d28060.tar.gz gsoc2013-evolution-18b0c8df946cd8dd936c5a81bb2f143371d28060.tar.zst gsoc2013-evolution-18b0c8df946cd8dd936c5a81bb2f143371d28060.zip |
Fixes #40876
2003-04-07 JP Rosevear <jpr@ximian.com>
Fixes #40876
* gui/e-meeting-time-sel.c
(e_meeting_time_selector_refresh_free_busy): guard against
callbacks after destruction
(e_meeting_time_selector_refresh_cb): ditto
svn path=/trunk/; revision=20727
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 11 | ||||
-rw-r--r-- | calendar/gui/e-meeting-time-sel.c | 12 |
2 files changed, 20 insertions, 3 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 714cb687f5..0fd251f4f5 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,6 +1,15 @@ 2003-04-07 JP Rosevear <jpr@ximian.com> - * gui/dialogs/event-page.glade: create button properly + Fixes #40876 + + * gui/e-meeting-time-sel.c + (e_meeting_time_selector_refresh_free_busy): guard against + callbacks after destruction + (e_meeting_time_selector_refresh_cb): ditto + +2003-04-07 JP Rosevear <jpr@ximian.com> + + * gui/dialogs/event-page.glade: create buttons properly * gui/itip-utils.c (comp_server_send): for errors other than busy, we want to email the results diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c index 7e21598115..b857814125 100644 --- a/calendar/gui/e-meeting-time-sel.c +++ b/calendar/gui/e-meeting-time-sel.c @@ -1223,8 +1223,11 @@ static void e_meeting_time_selector_refresh_cb (gpointer data) { EMeetingTimeSelector *mts = data; - gtk_widget_queue_draw (mts->display_top); - gtk_widget_queue_draw (mts->display_main); + + if (mts->display_top != NULL) + gtk_widget_queue_draw (mts->display_top); + if (mts->display_main != NULL) + gtk_widget_queue_draw (mts->display_main); } static void @@ -1241,12 +1244,17 @@ e_meeting_time_selector_refresh_free_busy (EMeetingTimeSelector *mts, int row, g end.hour = 0; end.minute = 0; + /* Ref ourselves in case we are called back after destruction */ + gtk_object_ref (GTK_OBJECT (mts)); + if (all) e_meeting_model_refresh_all_busy_periods (mts->model, &start, &end, e_meeting_time_selector_refresh_cb, mts); else e_meeting_model_refresh_busy_periods (mts->model, row, &start, &end, e_meeting_time_selector_refresh_cb, mts); + + gtk_object_unref (GTK_OBJECT (mts)); } EMeetingTimeSelectorAutopickOption |