aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-day-view.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2013-07-19 23:43:08 +0800
committerMilan Crha <mcrha@redhat.com>2013-07-19 23:43:46 +0800
commit7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74 (patch)
treebae5a24f836677f4539f9a3ff64e19a3f617ec02 /calendar/gui/e-day-view.c
parent7383843653a4aecb0bffb589e57ff6bad51547fd (diff)
downloadgsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar.gz
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar.bz2
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar.lz
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar.xz
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.tar.zst
gsoc2013-evolution-7a05cf2cf74ceb5c5bb950f42475ab4ff3acba74.zip
Bug #703153 - Forgotten signal callbacks for freed objects
Diffstat (limited to 'calendar/gui/e-day-view.c')
-rw-r--r--calendar/gui/e-day-view.c81
1 files changed, 10 insertions, 71 deletions
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 6ad72a5765..3c0b462faa 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -97,13 +97,6 @@
struct _EDayViewPrivate {
ECalModel *model;
- gulong notify_work_day_monday_handler_id;
- gulong notify_work_day_tuesday_handler_id;
- gulong notify_work_day_wednesday_handler_id;
- gulong notify_work_day_thursday_handler_id;
- gulong notify_work_day_friday_handler_id;
- gulong notify_work_day_saturday_handler_id;
- gulong notify_work_day_sunday_handler_id;
/* Whether we are showing the work-week view. */
gboolean work_week_view;
@@ -826,53 +819,9 @@ day_view_dispose (GObject *object)
day_view->grabbed_pointer = NULL;
}
- if (day_view->priv->notify_work_day_monday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_monday_handler_id);
- day_view->priv->notify_work_day_monday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_tuesday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_tuesday_handler_id);
- day_view->priv->notify_work_day_tuesday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_wednesday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_wednesday_handler_id);
- day_view->priv->notify_work_day_wednesday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_thursday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_thursday_handler_id);
- day_view->priv->notify_work_day_thursday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_friday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_friday_handler_id);
- day_view->priv->notify_work_day_friday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_saturday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_saturday_handler_id);
- day_view->priv->notify_work_day_saturday_handler_id = 0;
- }
-
- if (day_view->priv->notify_work_day_sunday_handler_id > 0) {
- g_signal_handler_disconnect (
- day_view->priv->model,
- day_view->priv->notify_work_day_sunday_handler_id);
- day_view->priv->notify_work_day_sunday_handler_id = 0;
+ if (day_view->priv->model) {
+ g_signal_handlers_disconnect_by_data (day_view->priv->model, day_view);
+ g_signal_handlers_disconnect_by_data (day_view->priv->model, day_view->main_canvas);
}
g_clear_object (&day_view->priv->model);
@@ -886,7 +835,6 @@ day_view_constructed (GObject *object)
{
EDayView *day_view;
ECalModel *model;
- gulong handler_id;
day_view = E_DAY_VIEW (object);
@@ -899,42 +847,33 @@ day_view_constructed (GObject *object)
* disconnect signal handlers in dispose(). */
day_view->priv->model = g_object_ref (model);
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-monday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_monday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-tuesday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_tuesday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-wednesday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_wednesday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-thursday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_thursday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-friday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_friday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-saturday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_saturday_handler_id = handler_id;
- handler_id = g_signal_connect (
+ g_signal_connect (
model, "notify::work-day-sunday",
G_CALLBACK (day_view_notify_work_day_cb), day_view);
- day_view->priv->notify_work_day_sunday_handler_id = handler_id;
-
- /* FIXME Should be doing something similar for these handlers. */
g_signal_connect_swapped (
day_view, "notify::time-divisions",