|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/contact-editor/e-contact-editor.c.labels-gsettings-busy-loop evolution-3.8.5/addressbook/gui/contact-editor/e-contact-editor.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/contact-editor/e-contact-editor.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.380256027 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/contact-editor/e-contact-editor.c 2014-06-05 12:50:44.137250570 +0200
|
|
|
b1a0e4 |
@@ -4428,7 +4428,7 @@ e_contact_editor_set_property (GObject *
|
|
|
b1a0e4 |
editor->target_client = editor->source_client;
|
|
|
b1a0e4 |
g_object_ref (editor->target_client);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- editor->target_editable_id = g_signal_connect (
|
|
|
b1a0e4 |
+ editor->target_editable_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
editor->target_client, "notify::readonly",
|
|
|
b1a0e4 |
G_CALLBACK (notify_readonly_cb), editor);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -4475,7 +4475,7 @@ e_contact_editor_set_property (GObject *
|
|
|
b1a0e4 |
editor->target_client = target_client;
|
|
|
b1a0e4 |
g_object_ref (editor->target_client);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- editor->target_editable_id = g_signal_connect (
|
|
|
b1a0e4 |
+ editor->target_editable_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
editor->target_client, "notify::readonly",
|
|
|
b1a0e4 |
G_CALLBACK (notify_readonly_cb), editor);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/contact-list-editor/e-contact-list-editor.c.labels-gsettings-busy-loop evolution-3.8.5/addressbook/gui/contact-list-editor/e-contact-list-editor.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/contact-list-editor/e-contact-list-editor.c.labels-gsettings-busy-loop 2013-08-10 23:38:42.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/contact-list-editor/e-contact-list-editor.c 2014-06-05 12:50:44.138250560 +0200
|
|
|
b1a0e4 |
@@ -1474,10 +1474,10 @@ contact_list_editor_constructed (GObject
|
|
|
b1a0e4 |
e_name_selector_peek_model (editor->priv->name_selector),
|
|
|
b1a0e4 |
"Members", _("_Members"), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
editor, "notify::book",
|
|
|
b1a0e4 |
G_CALLBACK (contact_list_editor_notify_cb), NULL);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
editor, "notify::editable",
|
|
|
b1a0e4 |
G_CALLBACK (contact_list_editor_notify_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/widgets/eab-contact-display.c.labels-gsettings-busy-loop evolution-3.8.5/addressbook/gui/widgets/eab-contact-display.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/widgets/eab-contact-display.c.labels-gsettings-busy-loop 2013-07-23 14:52:21.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/widgets/eab-contact-display.c 2014-06-05 12:50:44.138250560 +0200
|
|
|
b1a0e4 |
@@ -514,7 +514,7 @@ eab_contact_display_init (EABContactDisp
|
|
|
b1a0e4 |
web_view, "create-plugin-widget",
|
|
|
b1a0e4 |
G_CALLBACK (contact_display_object_requested), display);
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
web_view, "notify::load-status",
|
|
|
b1a0e4 |
G_CALLBACK (contact_display_load_status_changed), NULL);
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/widgets/e-contact-map-window.c.labels-gsettings-busy-loop evolution-3.8.5/addressbook/gui/widgets/e-contact-map-window.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/widgets/e-contact-map-window.c.labels-gsettings-busy-loop 2013-07-23 14:52:22.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/widgets/e-contact-map-window.c 2014-06-05 12:50:44.138250560 +0200
|
|
|
b1a0e4 |
@@ -370,7 +370,7 @@ e_contact_map_window_init (EContactMapWi
|
|
|
b1a0e4 |
view = e_contact_map_get_view (E_CONTACT_MAP (map));
|
|
|
b1a0e4 |
champlain_view_set_zoom_level (view, 2);
|
|
|
b1a0e4 |
priv->map = E_CONTACT_MAP (map);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
view, "notify::zoom-level",
|
|
|
b1a0e4 |
G_CALLBACK (zoom_level_changed_cb), window);
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/addressbook/gui/widgets/e-contact-marker.c.labels-gsettings-busy-loop evolution-3.8.5/addressbook/gui/widgets/e-contact-marker.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/addressbook/gui/widgets/e-contact-marker.c.labels-gsettings-busy-loop 2013-07-23 14:52:21.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/addressbook/gui/widgets/e-contact-marker.c 2014-06-05 12:50:44.138250560 +0200
|
|
|
b1a0e4 |
@@ -584,7 +584,7 @@ e_contact_marker_init (EContactMarker *m
|
|
|
b1a0e4 |
priv->total_width = 0;
|
|
|
b1a0e4 |
priv->total_height = 0;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
marker, "notify::selected",
|
|
|
b1a0e4 |
G_CALLBACK (notify_selected), NULL);
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/dialogs/recurrence-page.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/dialogs/recurrence-page.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/dialogs/recurrence-page.c.labels-gsettings-busy-loop 2013-07-23 14:52:34.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/dialogs/recurrence-page.c 2014-06-05 12:50:44.139250548 +0200
|
|
|
b1a0e4 |
@@ -283,7 +283,7 @@ recurrence_page_constructor (GType type,
|
|
|
b1a0e4 |
/* Keep the calendar updated as the user twizzles widgets. */
|
|
|
b1a0e4 |
editor = comp_editor_page_get_editor (COMP_EDITOR_PAGE (object));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
editor, "notify::changed",
|
|
|
b1a0e4 |
G_CALLBACK (preview_recur), object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -2530,7 +2530,7 @@ recurrence_page_construct (RecurrencePag
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
init_widgets (rpage);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
editor, "notify::client",
|
|
|
b1a0e4 |
G_CALLBACK (sensitize_buttons), rpage);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/dialogs/schedule-page.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/dialogs/schedule-page.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/dialogs/schedule-page.c.labels-gsettings-busy-loop 2013-07-23 14:52:34.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/dialogs/schedule-page.c 2014-06-05 12:50:44.139250548 +0200
|
|
|
b1a0e4 |
@@ -430,7 +430,7 @@ schedule_page_construct (SchedulePage *s
|
|
|
b1a0e4 |
return NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
editor, "notify::client",
|
|
|
b1a0e4 |
G_CALLBACK (sensitize_widgets), spage);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/dialogs/task-details-page.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/dialogs/task-details-page.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/dialogs/task-details-page.c.labels-gsettings-busy-loop 2013-07-23 14:52:32.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/dialogs/task-details-page.c 2014-06-05 12:50:44.139250548 +0200
|
|
|
b1a0e4 |
@@ -759,7 +759,7 @@ task_details_page_construct (TaskDetails
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
init_widgets (tdpage);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
editor, "notify::client",
|
|
|
b1a0e4 |
G_CALLBACK (sensitize_widgets), tdpage);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-cal-list-view.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-cal-list-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-cal-list-view.c.labels-gsettings-busy-loop 2013-07-23 14:52:32.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-cal-list-view.c 2014-06-05 12:50:44.139250548 +0200
|
|
|
b1a0e4 |
@@ -339,7 +339,7 @@ setup_e_table (ECalListView *cal_list_vi
|
|
|
b1a0e4 |
cal_list_view->table, "cursor_change",
|
|
|
b1a0e4 |
G_CALLBACK (e_cal_list_view_cursor_change_cb),
|
|
|
b1a0e4 |
cal_list_view);
|
|
|
b1a0e4 |
- g_signal_connect_after (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_after (
|
|
|
b1a0e4 |
cal_list_view->table, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (e_cal_list_view_table_editing_changed_cb),
|
|
|
b1a0e4 |
cal_list_view);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-day-view.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-day-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-day-view.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.912252173 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-day-view.c 2014-06-05 12:50:44.140250537 +0200
|
|
|
b1a0e4 |
@@ -92,7 +92,11 @@
|
|
|
b1a0e4 |
#define E_DAY_VIEW_MAX_ROWS_AT_TOP 6
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _EDayViewPrivate {
|
|
|
b1a0e4 |
- gint placeholder;
|
|
|
b1a0e4 |
+ gulong notify_week_start_day_id;
|
|
|
b1a0e4 |
+ gulong notify_work_day_start_hour_id;
|
|
|
b1a0e4 |
+ gulong notify_work_day_start_minute_id;
|
|
|
b1a0e4 |
+ gulong notify_work_day_end_hour_id;
|
|
|
b1a0e4 |
+ gulong notify_work_day_end_minute_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
typedef struct {
|
|
|
b1a0e4 |
@@ -749,6 +753,12 @@ day_view_dispose (GObject *object)
|
|
|
b1a0e4 |
if (model) {
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_by_data (model, day_view);
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_by_data (model, day_view->main_canvas);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &day_view->priv->notify_week_start_day_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &day_view->priv->notify_work_day_start_hour_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &day_view->priv->notify_work_day_start_minute_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &day_view->priv->notify_work_day_end_hour_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &day_view->priv->notify_work_day_end_minute_id);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
e_day_view_cancel_layout (day_view);
|
|
|
b1a0e4 |
@@ -826,27 +836,27 @@ day_view_constructed (GObject *object)
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
model = e_calendar_view_get_model (E_CALENDAR_VIEW (day_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
day_view, "notify::time-divisions",
|
|
|
b1a0e4 |
G_CALLBACK (day_view_notify_time_divisions_cb), day_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ day_view->priv->notify_week_start_day_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::week-start-day",
|
|
|
b1a0e4 |
G_CALLBACK (day_view_notify_week_start_day_cb), day_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ day_view->priv->notify_work_day_start_hour_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::work-day-start-hour",
|
|
|
b1a0e4 |
G_CALLBACK (gtk_widget_queue_draw), day_view->main_canvas);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ day_view->priv->notify_work_day_start_minute_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::work-day-start-minute",
|
|
|
b1a0e4 |
G_CALLBACK (gtk_widget_queue_draw), day_view->main_canvas);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ day_view->priv->notify_work_day_end_hour_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::work-day-end-hour",
|
|
|
b1a0e4 |
G_CALLBACK (gtk_widget_queue_draw), day_view->main_canvas);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ day_view->priv->notify_work_day_end_minute_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::work-day-end-minute",
|
|
|
b1a0e4 |
G_CALLBACK (gtk_widget_queue_draw), day_view->main_canvas);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-day-view-time-item.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-day-view-time-item.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-day-view-time-item.c.labels-gsettings-busy-loop 2014-06-05 12:53:12.275165090 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-day-view-time-item.c 2014-06-05 12:53:23.107084998 +0200
|
|
|
b1a0e4 |
@@ -721,16 +721,21 @@ edvti_second_zone_changed_cb (GSettings
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
EDayViewTimeItem *time_item = user_data;
|
|
|
b1a0e4 |
EDayView *day_view;
|
|
|
b1a0e4 |
+ icaltimezone *second_zone;
|
|
|
b1a0e4 |
gchar *location;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (user_data != NULL);
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_DAY_VIEW_TIME_ITEM (time_item));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
location = calendar_config_get_day_second_zone ();
|
|
|
b1a0e4 |
- time_item->priv->second_zone =
|
|
|
b1a0e4 |
- location ? icaltimezone_get_builtin_timezone (location) : NULL;
|
|
|
b1a0e4 |
+ second_zone = location ? icaltimezone_get_builtin_timezone (location) : NULL;
|
|
|
b1a0e4 |
g_free (location);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (second_zone == time_item->priv->second_zone)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ time_item->priv->second_zone = second_zone;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
day_view = e_day_view_time_item_get_day_view (time_item);
|
|
|
b1a0e4 |
gtk_widget_set_size_request (
|
|
|
b1a0e4 |
day_view->time_canvas,
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-meeting-time-sel.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-meeting-time-sel.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-meeting-time-sel.c.labels-gsettings-busy-loop 2013-08-01 14:12:40.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-meeting-time-sel.c 2014-06-05 12:50:44.141250520 +0200
|
|
|
b1a0e4 |
@@ -46,6 +46,7 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _EMeetingTimeSelectorPrivate {
|
|
|
b1a0e4 |
gboolean use_24_hour_format;
|
|
|
b1a0e4 |
+ gulong notify_free_busy_template_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* An array of hour strings for 24 hour time, "0:00" .. "23:00". */
|
|
|
b1a0e4 |
@@ -250,6 +251,8 @@ meeting_time_selector_dispose (GObject *
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_matched (
|
|
|
b1a0e4 |
mts->model, G_SIGNAL_MATCH_DATA,
|
|
|
b1a0e4 |
0, 0, NULL, NULL, mts);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (mts->model, &mts->priv->notify_free_busy_template_id);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_object_unref (mts->model);
|
|
|
b1a0e4 |
mts->model = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -395,7 +398,7 @@ e_meeting_time_selector_construct (EMeet
|
|
|
b1a0e4 |
if (mts->model)
|
|
|
b1a0e4 |
g_object_ref (mts->model);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ mts->priv->notify_free_busy_template_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
mts->model, "notify::free-busy-template",
|
|
|
b1a0e4 |
G_CALLBACK (free_busy_template_changed_cb), mts);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-task-table.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-task-table.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-task-table.c.labels-gsettings-busy-loop 2013-07-23 14:52:27.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-task-table.c 2014-06-05 12:50:44.141250520 +0200
|
|
|
b1a0e4 |
@@ -59,6 +59,11 @@ struct _ETaskTablePrivate {
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
GtkTargetList *copy_target_list;
|
|
|
b1a0e4 |
GtkTargetList *paste_target_list;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gulong notify_highlight_due_today_id;
|
|
|
b1a0e4 |
+ gulong notify_color_due_today_id;
|
|
|
b1a0e4 |
+ gulong notify_highlight_overdue_id;
|
|
|
b1a0e4 |
+ gulong notify_color_overdue_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
enum {
|
|
|
b1a0e4 |
@@ -316,26 +321,25 @@ task_table_set_model (ETaskTable *task_t
|
|
|
b1a0e4 |
task_table);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* redraw on drawing options change */
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ task_table->priv->notify_highlight_due_today_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
model, "notify::highlight-due-today",
|
|
|
b1a0e4 |
G_CALLBACK (task_table_queue_draw_cb),
|
|
|
b1a0e4 |
task_table);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ task_table->priv->notify_color_due_today_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
model, "notify::color-due-today",
|
|
|
b1a0e4 |
G_CALLBACK (task_table_queue_draw_cb),
|
|
|
b1a0e4 |
task_table);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ task_table->priv->notify_highlight_overdue_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
model, "notify::highlight-overdue",
|
|
|
b1a0e4 |
G_CALLBACK (task_table_queue_draw_cb),
|
|
|
b1a0e4 |
task_table);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ task_table->priv->notify_color_overdue_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
model, "notify::color-overdue",
|
|
|
b1a0e4 |
G_CALLBACK (task_table_queue_draw_cb),
|
|
|
b1a0e4 |
task_table);
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
@@ -429,7 +433,13 @@ task_table_dispose (GObject *object)
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (priv->model != NULL) {
|
|
|
b1a0e4 |
- g_signal_handlers_disconnect_by_func (priv->model, task_table_queue_draw_cb, object);
|
|
|
b1a0e4 |
+ g_signal_handlers_disconnect_by_data (priv->model, object);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->model, &priv->notify_highlight_due_today_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->model, &priv->notify_color_due_today_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->model, &priv->notify_highlight_overdue_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->model, &priv->notify_color_overdue_id);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_object_unref (priv->model);
|
|
|
b1a0e4 |
priv->model = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/e-week-view.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/e-week-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/e-week-view.c.labels-gsettings-busy-loop 2013-07-23 14:52:36.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/e-week-view.c 2014-06-05 12:50:44.141250520 +0200
|
|
|
b1a0e4 |
@@ -78,7 +78,7 @@
|
|
|
b1a0e4 |
#define E_WEEK_VIEW_LAYOUT_TIMEOUT 100
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _EWeekViewPrivate {
|
|
|
b1a0e4 |
- gint placeholder;
|
|
|
b1a0e4 |
+ gulong notify_week_start_day_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
typedef struct {
|
|
|
b1a0e4 |
@@ -691,8 +691,10 @@ week_view_dispose (GObject *object)
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
e_week_view_cancel_layout (week_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- if (model)
|
|
|
b1a0e4 |
+ if (model) {
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_by_data (model, object);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (model, &week_view->priv->notify_week_start_day_id);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (week_view->events) {
|
|
|
b1a0e4 |
e_week_view_free_events (week_view);
|
|
|
b1a0e4 |
@@ -728,18 +730,20 @@ week_view_dispose (GObject *object)
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
week_view_constructed (GObject *object)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ EWeekView *week_view;
|
|
|
b1a0e4 |
ECalModel *model;
|
|
|
b1a0e4 |
ECalendarView *calendar_view;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Chain up to parent's constructed() method. */
|
|
|
b1a0e4 |
G_OBJECT_CLASS (e_week_view_parent_class)->constructed (object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ week_view = E_WEEK_VIEW (object);
|
|
|
b1a0e4 |
calendar_view = E_CALENDAR_VIEW (object);
|
|
|
b1a0e4 |
model = e_calendar_view_get_model (calendar_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
e_week_view_recalc_display_start_day (E_WEEK_VIEW (object));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ week_view->priv->notify_week_start_day_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::week-start-day",
|
|
|
b1a0e4 |
G_CALLBACK (week_view_notify_week_start_day_cb), object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/calendar/gui/gnome-cal.c.labels-gsettings-busy-loop evolution-3.8.5/calendar/gui/gnome-cal.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/calendar/gui/gnome-cal.c.labels-gsettings-busy-loop 2013-07-23 14:52:30.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/calendar/gui/gnome-cal.c 2014-06-05 12:50:44.142250506 +0200
|
|
|
b1a0e4 |
@@ -125,6 +125,8 @@ struct _GnomeCalendarPrivate {
|
|
|
b1a0e4 |
gboolean lview_select_daten_range;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
GCancellable *cancellable;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gulong notify_week_start_day_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _ViewData {
|
|
|
b1a0e4 |
@@ -540,7 +542,7 @@ gnome_calendar_constructed (GObject *obj
|
|
|
b1a0e4 |
gcal->priv->views[GNOME_CAL_WORK_WEEK_VIEW] = calendar_view;
|
|
|
b1a0e4 |
g_object_ref_sink (calendar_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
calendar_view, "notify::working-days",
|
|
|
b1a0e4 |
G_CALLBACK (gnome_calendar_update_time_range), gcal);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -588,7 +590,7 @@ gnome_calendar_constructed (GObject *obj
|
|
|
b1a0e4 |
calendar_view, "selection-changed",
|
|
|
b1a0e4 |
G_CALLBACK (view_selection_changed_cb), gcal);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ gcal->priv->notify_week_start_day_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
model, "notify::week-start-day",
|
|
|
b1a0e4 |
G_CALLBACK (gnome_calendar_notify_week_start_day_cb), gcal);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1574,6 +1576,7 @@ gnome_calendar_do_dispose (GObject *obje
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (priv->model != NULL) {
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_by_data (priv->model, object);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->model, &priv->notify_week_start_day_id);
|
|
|
b1a0e4 |
g_object_unref (priv->model);
|
|
|
b1a0e4 |
priv->model = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/composer/e-composer-name-header.c.labels-gsettings-busy-loop evolution-3.8.5/composer/e-composer-name-header.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/composer/e-composer-name-header.c.labels-gsettings-busy-loop 2013-07-23 14:52:19.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/composer/e-composer-name-header.c 2014-06-05 12:50:44.142250506 +0200
|
|
|
b1a0e4 |
@@ -222,7 +222,7 @@ composer_name_header_constructed (GObjec
|
|
|
b1a0e4 |
NULL);
|
|
|
b1a0e4 |
E_COMPOSER_HEADER (object)->input_widget = g_object_ref_sink (entry);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
object, "notify::visible",
|
|
|
b1a0e4 |
G_CALLBACK (composer_name_header_visible_changed_cb), object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/composer/e-composer-private.c.labels-gsettings-busy-loop evolution-3.8.5/composer/e-composer-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/composer/e-composer-private.c.labels-gsettings-busy-loop 2013-07-23 14:52:19.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/composer/e-composer-private.c 2014-06-05 12:50:44.142250506 +0200
|
|
|
b1a0e4 |
@@ -392,7 +392,7 @@ e_composer_private_constructed (EMsgComp
|
|
|
b1a0e4 |
priv->gallery_icon_view = g_object_ref (widget);
|
|
|
b1a0e4 |
g_free (gallery_path);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
composer, "notify::html-mode",
|
|
|
b1a0e4 |
G_CALLBACK (composer_update_gallery_visibility), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/composer/e-msg-composer.c.labels-gsettings-busy-loop evolution-3.8.5/composer/e-msg-composer.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/composer/e-msg-composer.c.labels-gsettings-busy-loop 2013-07-23 14:52:19.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/composer/e-msg-composer.c 2014-06-05 12:50:44.143250493 +0200
|
|
|
b1a0e4 |
@@ -2019,28 +2019,28 @@ msg_composer_constructed (GObject *objec
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Configure Headers */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::destinations-bcc",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_notify_header_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::destinations-cc",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_notify_header_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::destinations-to",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_notify_header_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::identity-uid",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_mail_identity_changed_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::reply-to",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_notify_header_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::signature-uid",
|
|
|
b1a0e4 |
G_CALLBACK (e_composer_update_signature), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::subject",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_subject_changed_cb), composer);
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
table, "notify::subject",
|
|
|
b1a0e4 |
G_CALLBACK (msg_composer_notify_header_cb), composer);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-action-combo-box.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-action-combo-box.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-action-combo-box.c.labels-gsettings-busy-loop 2013-07-23 14:52:15.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-action-combo-box.c 2014-06-05 12:50:44.143250493 +0200
|
|
|
b1a0e4 |
@@ -23,6 +23,7 @@
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-action-combo-box.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <glib/gi18n.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -512,13 +513,13 @@ e_action_combo_box_set_action (EActionCo
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (combo_box->priv->action_group != NULL) {
|
|
|
b1a0e4 |
combo_box->priv->group_sensitive_handler_id =
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
combo_box->priv->action_group,
|
|
|
b1a0e4 |
"notify::sensitive", G_CALLBACK (
|
|
|
b1a0e4 |
action_combo_box_action_group_notify_cb),
|
|
|
b1a0e4 |
combo_box);
|
|
|
b1a0e4 |
combo_box->priv->group_visible_handler_id =
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
combo_box->priv->action_group,
|
|
|
b1a0e4 |
"notify::visible", G_CALLBACK (
|
|
|
b1a0e4 |
action_combo_box_action_group_notify_cb),
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-activity-bar.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-activity-bar.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-activity-bar.c.labels-gsettings-busy-loop 2013-07-23 14:52:05.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-activity-bar.c 2014-06-05 12:50:44.143250493 +0200
|
|
|
b1a0e4 |
@@ -21,6 +21,7 @@
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-activity-bar.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_ACTIVITY_BAR_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-activity-proxy.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-activity-proxy.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-activity-proxy.c.labels-gsettings-busy-loop 2013-07-23 14:52:03.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-activity-proxy.c 2014-06-05 12:50:44.143250493 +0200
|
|
|
b1a0e4 |
@@ -24,6 +24,7 @@
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-activity-proxy.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <glib/gi18n.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-attachment-bar.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-attachment-bar.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-attachment-bar.c.labels-gsettings-busy-loop 2013-07-23 14:52:15.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-attachment-bar.c 2014-06-05 12:50:44.143250493 +0200
|
|
|
b1a0e4 |
@@ -30,6 +30,7 @@
|
|
|
b1a0e4 |
#include "e-attachment-store.h"
|
|
|
b1a0e4 |
#include "e-attachment-icon-view.h"
|
|
|
b1a0e4 |
#include "e-attachment-tree-view.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_ATTACHMENT_BAR_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -133,12 +134,12 @@ attachment_bar_set_store (EAttachmentBar
|
|
|
b1a0e4 |
GTK_TREE_VIEW (bar->priv->tree_view),
|
|
|
b1a0e4 |
bar->priv->model);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
bar->priv->model, "notify::num-attachments",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_bar_update_status), bar,
|
|
|
b1a0e4 |
G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
bar->priv->model, "notify::total-size",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_bar_update_status), bar,
|
|
|
b1a0e4 |
G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-attachment-button.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-attachment-button.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-attachment-button.c.labels-gsettings-busy-loop 2013-07-23 14:52:08.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-attachment-button.c 2014-06-05 12:50:44.144250482 +0200
|
|
|
b1a0e4 |
@@ -26,6 +26,7 @@
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-attachment-button.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_ATTACHMENT_BUTTON_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -774,7 +775,7 @@ e_attachment_button_set_attachment (EAtt
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
button->priv->shown_binding = binding;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- handler_id = g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ handler_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
attachment, "notify::reference",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_button_update_cell_view),
|
|
|
b1a0e4 |
button);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-attachment.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-attachment.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-attachment.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.867252500 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-attachment.c 2014-06-05 12:50:44.144250482 +0200
|
|
|
b1a0e4 |
@@ -34,6 +34,7 @@
|
|
|
b1a0e4 |
#include "e-attachment-store.h"
|
|
|
b1a0e4 |
#include "e-icon-factory.h"
|
|
|
b1a0e4 |
#include "e-mktemp.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_ATTACHMENT_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -1024,51 +1025,51 @@ e_attachment_init (EAttachment *attachme
|
|
|
b1a0e4 |
g_mutex_init (&attachment->priv->property_lock);
|
|
|
b1a0e4 |
g_mutex_init (&attachment->priv->idle_lock);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::encrypted",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::file-info",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_file_info_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::file-info",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::loading",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::loading",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_progress_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::percent",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_progress_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::reference",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_file_info_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::reference",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::reference",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_progress_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::saving",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::saving",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_progress_columns), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
attachment, "notify::signed",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_update_icon_column), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-attachment-paned.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-attachment-paned.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-attachment-paned.c.labels-gsettings-busy-loop 2013-07-23 14:52:03.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-attachment-paned.c 2014-06-05 12:50:44.144250482 +0200
|
|
|
b1a0e4 |
@@ -27,6 +27,7 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <glib/gi18n.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
#include "e-attachment-view.h"
|
|
|
b1a0e4 |
#include "e-attachment-store.h"
|
|
|
b1a0e4 |
#include "e-attachment-icon-view.h"
|
|
|
b1a0e4 |
@@ -745,15 +746,15 @@ e_attachment_paned_init (EAttachmentPane
|
|
|
b1a0e4 |
paned->priv->status_label = g_object_ref (widget);
|
|
|
b1a0e4 |
gtk_widget_hide (widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
paned->priv->expander, "notify::expanded",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_paned_notify_cb), paned);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
paned->priv->model, "notify::num-attachments",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_paned_update_status), paned);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
paned->priv->model, "notify::total-size",
|
|
|
b1a0e4 |
G_CALLBACK (attachment_paned_update_status), paned);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-category-completion.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-category-completion.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-category-completion.c.labels-gsettings-busy-loop 2013-07-23 14:52:05.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-category-completion.c 2014-06-05 12:50:44.144250482 +0200
|
|
|
b1a0e4 |
@@ -26,6 +26,8 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <libedataserver/libedataserver.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
#define E_CATEGORY_COMPLETION_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
((obj), E_TYPE_CATEGORY_COMPLETION, ECategoryCompletionPrivate))
|
|
|
b1a0e4 |
@@ -34,6 +36,9 @@ struct _ECategoryCompletionPrivate {
|
|
|
b1a0e4 |
GtkWidget *last_known_entry;
|
|
|
b1a0e4 |
gchar *create;
|
|
|
b1a0e4 |
gchar *prefix;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gulong notify_cursor_position_id;
|
|
|
b1a0e4 |
+ gulong notify_text_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
enum {
|
|
|
b1a0e4 |
@@ -342,6 +347,8 @@ category_completion_track_entry (GtkEntr
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_matched (
|
|
|
b1a0e4 |
priv->last_known_entry, G_SIGNAL_MATCH_DATA,
|
|
|
b1a0e4 |
0, 0, NULL, NULL, completion);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->last_known_entry, &priv->notify_cursor_position_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->last_known_entry, &priv->notify_text_id);
|
|
|
b1a0e4 |
g_object_unref (priv->last_known_entry);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -354,11 +361,11 @@ category_completion_track_entry (GtkEntr
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_ref (priv->last_known_entry);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ priv->notify_cursor_position_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
priv->last_known_entry, "notify::cursor-position",
|
|
|
b1a0e4 |
G_CALLBACK (category_completion_update_prefix), completion);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ priv->notify_text_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
priv->last_known_entry, "notify::text",
|
|
|
b1a0e4 |
G_CALLBACK (category_completion_update_prefix), completion);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -413,6 +420,8 @@ category_completion_dispose (GObject *ob
|
|
|
b1a0e4 |
g_signal_handlers_disconnect_matched (
|
|
|
b1a0e4 |
priv->last_known_entry, G_SIGNAL_MATCH_DATA,
|
|
|
b1a0e4 |
0, 0, NULL, NULL, object);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->last_known_entry, &priv->notify_cursor_position_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->last_known_entry, &priv->notify_text_id);
|
|
|
b1a0e4 |
g_object_unref (priv->last_known_entry);
|
|
|
b1a0e4 |
priv->last_known_entry = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-charset-combo-box.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-charset-combo-box.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-charset-combo-box.c.labels-gsettings-busy-loop 2013-07-23 14:52:06.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-charset-combo-box.c 2014-06-05 12:50:44.144250482 +0200
|
|
|
b1a0e4 |
@@ -352,7 +352,7 @@ e_charset_combo_box_init (ECharsetComboB
|
|
|
b1a0e4 |
e_action_combo_box_add_separator_after (
|
|
|
b1a0e4 |
E_ACTION_COMBO_BOX (combo_box), g_slist_length (group));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
combo_box, "notify::charset",
|
|
|
b1a0e4 |
G_CALLBACK (charset_combo_box_notify_charset_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-filter-rule.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-filter-rule.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-filter-rule.c.labels-gsettings-busy-loop 2013-07-23 14:52:09.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-filter-rule.c 2014-06-05 12:50:44.145250475 +0200
|
|
|
b1a0e4 |
@@ -33,6 +33,7 @@
|
|
|
b1a0e4 |
#include "e-alert-dialog.h"
|
|
|
b1a0e4 |
#include "e-filter-rule.h"
|
|
|
b1a0e4 |
#include "e-rule-context.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_FILTER_RULE_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -896,10 +897,10 @@ filter_rule_get_widget (EFilterRule *rul
|
|
|
b1a0e4 |
vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 1.0, 1.0, 1.0, 1.0));
|
|
|
b1a0e4 |
scrolledwindow = gtk_scrolled_window_new (hadj, vadj);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
hadj, "notify::upper",
|
|
|
b1a0e4 |
G_CALLBACK (ensure_scrolled_width_cb), scrolledwindow);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
vadj, "notify::upper",
|
|
|
b1a0e4 |
G_CALLBACK (ensure_scrolled_height_cb), scrolledwindow);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-interval-chooser.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-interval-chooser.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-interval-chooser.c.labels-gsettings-busy-loop 2013-07-23 14:52:00.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-interval-chooser.c 2014-06-05 12:50:44.145250475 +0200
|
|
|
b1a0e4 |
@@ -22,6 +22,7 @@
|
|
|
b1a0e4 |
#include <glib/gi18n-lib.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-util-enums.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_INTERVAL_CHOOSER_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -130,7 +131,7 @@ e_interval_chooser_init (EIntervalChoose
|
|
|
b1a0e4 |
chooser->priv->spin_button = GTK_SPIN_BUTTON (widget);
|
|
|
b1a0e4 |
gtk_widget_show (widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
widget, "notify::value",
|
|
|
b1a0e4 |
G_CALLBACK (interval_chooser_notify_interval), chooser);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -145,7 +146,7 @@ e_interval_chooser_init (EIntervalChoose
|
|
|
b1a0e4 |
chooser->priv->combo_box = GTK_COMBO_BOX (widget);
|
|
|
b1a0e4 |
gtk_widget_show (widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
widget, "notify::active",
|
|
|
b1a0e4 |
G_CALLBACK (interval_chooser_notify_interval), chooser);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-menu-tool-button.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-menu-tool-button.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-menu-tool-button.c.labels-gsettings-busy-loop 2013-07-23 14:52:09.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-menu-tool-button.c 2014-06-05 12:50:44.145250475 +0200
|
|
|
b1a0e4 |
@@ -24,6 +24,7 @@
|
|
|
b1a0e4 |
#endif
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-menu-tool-button.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_MENU_TOOL_BUTTON_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -242,7 +243,7 @@ e_menu_tool_button_init (EMenuToolButton
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
button->priv->prefer_item = NULL;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
button, "notify::menu",
|
|
|
b1a0e4 |
G_CALLBACK (menu_tool_button_update_button), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-misc-utils.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-misc-utils.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-misc-utils.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.382256022 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-misc-utils.c 2014-06-05 12:50:44.145250475 +0200
|
|
|
b1a0e4 |
@@ -2070,3 +2070,304 @@ e_misc_utils_is_help_package_installed (
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
return is_installed;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+typedef struct _EConnectNotifyData {
|
|
|
b1a0e4 |
+ GConnectFlags flags;
|
|
|
b1a0e4 |
+ GValue *old_value;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ GCallback c_handler;
|
|
|
b1a0e4 |
+ gpointer user_data;
|
|
|
b1a0e4 |
+} EConnectNotifyData;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static EConnectNotifyData *
|
|
|
b1a0e4 |
+e_connect_notify_data_new (GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data,
|
|
|
b1a0e4 |
+ guint32 connect_flags)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ connect_data = g_new0 (EConnectNotifyData, 1);
|
|
|
b1a0e4 |
+ connect_data->flags = connect_flags;
|
|
|
b1a0e4 |
+ connect_data->c_handler = c_handler;
|
|
|
b1a0e4 |
+ connect_data->user_data = user_data;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return connect_data;
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
+e_connect_notify_data_free (EConnectNotifyData *data)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ if (!data)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (data->old_value) {
|
|
|
b1a0e4 |
+ g_value_unset (data->old_value);
|
|
|
b1a0e4 |
+ g_free (data->old_value);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ g_free (data);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static gboolean
|
|
|
b1a0e4 |
+e_value_equal (GValue *value1,
|
|
|
b1a0e4 |
+ GValue *value2)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ if (value1 == value2)
|
|
|
b1a0e4 |
+ return TRUE;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!value1 || !value2)
|
|
|
b1a0e4 |
+ return FALSE;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ #define testType(_uc,_lc) G_STMT_START { \
|
|
|
b1a0e4 |
+ if (G_VALUE_HOLDS_ ## _uc (value1)) \
|
|
|
b1a0e4 |
+ return g_value_get_ ## _lc (value1) == g_value_get_ ## _lc (value2); \
|
|
|
b1a0e4 |
+ } G_STMT_END
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ testType (BOOLEAN, boolean);
|
|
|
b1a0e4 |
+ testType (BOXED, boxed);
|
|
|
b1a0e4 |
+ testType (CHAR, schar);
|
|
|
b1a0e4 |
+ testType (DOUBLE, double);
|
|
|
b1a0e4 |
+ testType (ENUM, enum);
|
|
|
b1a0e4 |
+ testType (FLAGS, flags);
|
|
|
b1a0e4 |
+ testType (FLOAT, float);
|
|
|
b1a0e4 |
+ testType (GTYPE, gtype);
|
|
|
b1a0e4 |
+ testType (INT, int);
|
|
|
b1a0e4 |
+ testType (INT64, int64);
|
|
|
b1a0e4 |
+ testType (LONG, long);
|
|
|
b1a0e4 |
+ testType (OBJECT, object);
|
|
|
b1a0e4 |
+ testType (POINTER, pointer);
|
|
|
b1a0e4 |
+ testType (UCHAR, uchar);
|
|
|
b1a0e4 |
+ testType (UINT, uint);
|
|
|
b1a0e4 |
+ testType (UINT64, uint64);
|
|
|
b1a0e4 |
+ testType (ULONG, ulong);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ #undef testType
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (G_VALUE_HOLDS_PARAM (value1)) {
|
|
|
b1a0e4 |
+ GParamSpec *param1, *param2;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ param1 = g_value_get_param (value1);
|
|
|
b1a0e4 |
+ param2 = g_value_get_param (value2);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return param1 && param2 &&
|
|
|
b1a0e4 |
+ g_strcmp0 (param1->name, param2->name) == 0 &&
|
|
|
b1a0e4 |
+ param1->flags == param2->flags &&
|
|
|
b1a0e4 |
+ param1->value_type == param2->value_type &&
|
|
|
b1a0e4 |
+ param1->owner_type == param2->owner_type;
|
|
|
b1a0e4 |
+ } else if (G_VALUE_HOLDS_STRING (value1)) {
|
|
|
b1a0e4 |
+ const gchar *string1, *string2;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ string1 = g_value_get_string (value1);
|
|
|
b1a0e4 |
+ string2 = g_value_get_string (value2);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return g_strcmp0 (string1, string2) == 0;
|
|
|
b1a0e4 |
+ } else if (G_VALUE_HOLDS_VARIANT (value1)) {
|
|
|
b1a0e4 |
+ GVariant *variant1, *variant2;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ variant1 = g_value_get_variant (value1);
|
|
|
b1a0e4 |
+ variant2 = g_value_get_variant (value2);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return variant1 == variant2 ||
|
|
|
b1a0e4 |
+ (variant1 && variant2 && g_variant_equal (variant1, variant2));
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return FALSE;
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
+e_signal_connect_notify_cb (gpointer instance,
|
|
|
b1a0e4 |
+ GParamSpec *param,
|
|
|
b1a0e4 |
+ gpointer user_data)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data = user_data;
|
|
|
b1a0e4 |
+ GValue *value;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_if_fail (connect_data != NULL);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ value = g_new0 (GValue, 1);
|
|
|
b1a0e4 |
+ g_value_init (value, param->value_type);
|
|
|
b1a0e4 |
+ g_object_get_property (instance, param->name, value);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!e_value_equal (connect_data->old_value, value)) {
|
|
|
b1a0e4 |
+ typedef void (* NotifyCBType) (gpointer instance, GParamSpec *param, gpointer user_data);
|
|
|
b1a0e4 |
+ NotifyCBType c_handler = (NotifyCBType) connect_data->c_handler;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (connect_data->old_value) {
|
|
|
b1a0e4 |
+ g_value_unset (connect_data->old_value);
|
|
|
b1a0e4 |
+ g_free (connect_data->old_value);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ connect_data->old_value = value;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (connect_data->flags == G_CONNECT_SWAPPED) {
|
|
|
b1a0e4 |
+ c_handler (connect_data->user_data, param, instance);
|
|
|
b1a0e4 |
+ } else {
|
|
|
b1a0e4 |
+ c_handler (instance, param, connect_data->user_data);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ } else {
|
|
|
b1a0e4 |
+ g_value_unset (value);
|
|
|
b1a0e4 |
+ g_free (value);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+/**
|
|
|
b1a0e4 |
+ * e_signal_connect_notify:
|
|
|
b1a0e4 |
+ *
|
|
|
b1a0e4 |
+ * This installs a special handler in front of @c_handler, which will
|
|
|
b1a0e4 |
+ * call the @c_handler only if the property value changed since the last
|
|
|
b1a0e4 |
+ * time it was checked. Due to this, these handlers cannot be disconnected
|
|
|
b1a0e4 |
+ * by by any of the g_signal_handlers_* functions, but only with the returned
|
|
|
b1a0e4 |
+ * handler ID. A convenient e_signal_disconnect_notify_handler() was added
|
|
|
b1a0e4 |
+ * to make it easier.
|
|
|
b1a0e4 |
+ **/
|
|
|
b1a0e4 |
+gulong
|
|
|
b1a0e4 |
+e_signal_connect_notify (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_val_if_fail (g_str_has_prefix (notify_name, "notify::"), 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ connect_data = e_connect_notify_data_new (c_handler, user_data, 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return g_signal_connect_data (instance,
|
|
|
b1a0e4 |
+ notify_name,
|
|
|
b1a0e4 |
+ G_CALLBACK (e_signal_connect_notify_cb),
|
|
|
b1a0e4 |
+ connect_data,
|
|
|
b1a0e4 |
+ (GClosureNotify) e_connect_notify_data_free,
|
|
|
b1a0e4 |
+ 0);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+/**
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_after:
|
|
|
b1a0e4 |
+ *
|
|
|
b1a0e4 |
+ * This installs a special handler in front of @c_handler, which will
|
|
|
b1a0e4 |
+ * call the @c_handler only if the property value changed since the last
|
|
|
b1a0e4 |
+ * time it was checked. Due to this, these handlers cannot be disconnected
|
|
|
b1a0e4 |
+ * by by any of the g_signal_handlers_* functions, but only with the returned
|
|
|
b1a0e4 |
+ * handler ID. A convenient e_signal_disconnect_notify_handler() was added
|
|
|
b1a0e4 |
+ * to make it easier.
|
|
|
b1a0e4 |
+ **/
|
|
|
b1a0e4 |
+gulong
|
|
|
b1a0e4 |
+e_signal_connect_notify_after (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_val_if_fail (g_str_has_prefix (notify_name, "notify::"), 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ connect_data = e_connect_notify_data_new (c_handler, user_data, G_CONNECT_AFTER);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return g_signal_connect_data (instance,
|
|
|
b1a0e4 |
+ notify_name,
|
|
|
b1a0e4 |
+ G_CALLBACK (e_signal_connect_notify_cb),
|
|
|
b1a0e4 |
+ connect_data,
|
|
|
b1a0e4 |
+ (GClosureNotify) e_connect_notify_data_free,
|
|
|
b1a0e4 |
+ G_CONNECT_AFTER);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+/**
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_swapped:
|
|
|
b1a0e4 |
+ *
|
|
|
b1a0e4 |
+ * This installs a special handler in front of @c_handler, which will
|
|
|
b1a0e4 |
+ * call the @c_handler only if the property value changed since the last
|
|
|
b1a0e4 |
+ * time it was checked. Due to this, these handlers cannot be disconnected
|
|
|
b1a0e4 |
+ * by by any of the g_signal_handlers_* functions, but only with the returned
|
|
|
b1a0e4 |
+ * handler ID. A convenient e_signal_disconnect_notify_handler() was added
|
|
|
b1a0e4 |
+ * to make it easier.
|
|
|
b1a0e4 |
+ **/
|
|
|
b1a0e4 |
+gulong
|
|
|
b1a0e4 |
+e_signal_connect_notify_swapped (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_val_if_fail (g_str_has_prefix (notify_name, "notify::"), 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ connect_data = e_connect_notify_data_new (c_handler, user_data, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return g_signal_connect_data (instance,
|
|
|
b1a0e4 |
+ notify_name,
|
|
|
b1a0e4 |
+ G_CALLBACK (e_signal_connect_notify_cb),
|
|
|
b1a0e4 |
+ connect_data,
|
|
|
b1a0e4 |
+ (GClosureNotify) e_connect_notify_data_free,
|
|
|
b1a0e4 |
+ 0);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+/**
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_object:
|
|
|
b1a0e4 |
+ *
|
|
|
b1a0e4 |
+ * This installs a special handler in front of @c_handler, which will
|
|
|
b1a0e4 |
+ * call the @c_handler only if the property value changed since the last
|
|
|
b1a0e4 |
+ * time it was checked. Due to this, these handlers cannot be disconnected
|
|
|
b1a0e4 |
+ * by by any of the g_signal_handlers_* functions, but only with the returned
|
|
|
b1a0e4 |
+ * handler ID. A convenient e_signal_disconnect_notify_handler() was added
|
|
|
b1a0e4 |
+ * to make it easier.
|
|
|
b1a0e4 |
+ **/
|
|
|
b1a0e4 |
+gulong
|
|
|
b1a0e4 |
+e_signal_connect_notify_object (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer gobject,
|
|
|
b1a0e4 |
+ GConnectFlags connect_flags)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EConnectNotifyData *connect_data;
|
|
|
b1a0e4 |
+ GClosure *closure;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_val_if_fail (g_str_has_prefix (notify_name, "notify::"), 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!gobject) {
|
|
|
b1a0e4 |
+ if ((connect_flags & G_CONNECT_SWAPPED) != 0)
|
|
|
b1a0e4 |
+ return e_signal_connect_notify_swapped (instance, notify_name, c_handler, gobject);
|
|
|
b1a0e4 |
+ else if ((connect_flags & G_CONNECT_AFTER) != 0)
|
|
|
b1a0e4 |
+ e_signal_connect_notify_after (instance, notify_name, c_handler, gobject);
|
|
|
b1a0e4 |
+ else
|
|
|
b1a0e4 |
+ g_warn_if_fail (connect_flags == 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return e_signal_connect_notify (instance, notify_name, c_handler, gobject);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_return_val_if_fail (G_IS_OBJECT (gobject), 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ connect_data = e_connect_notify_data_new (c_handler, gobject, connect_flags & G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+ closure = g_cclosure_new (
|
|
|
b1a0e4 |
+ G_CALLBACK (e_signal_connect_notify_cb),
|
|
|
b1a0e4 |
+ connect_data,
|
|
|
b1a0e4 |
+ (GClosureNotify) e_connect_notify_data_free);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_object_watch_closure (G_OBJECT (gobject), closure);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return g_signal_connect_closure (instance,
|
|
|
b1a0e4 |
+ notify_name,
|
|
|
b1a0e4 |
+ closure,
|
|
|
b1a0e4 |
+ connect_flags & G_CONNECT_AFTER);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+/**
|
|
|
b1a0e4 |
+ * e_signal_disconnect_notify_handler:
|
|
|
b1a0e4 |
+ *
|
|
|
b1a0e4 |
+ * Convenient handler disconnect function to be used with
|
|
|
b1a0e4 |
+ * returned handler IDs from:
|
|
|
b1a0e4 |
+ * e_signal_connect_notify()
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_after()
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_swapped()
|
|
|
b1a0e4 |
+ * e_signal_connect_notify_object()
|
|
|
b1a0e4 |
+ * but not necessarily only with these functions.
|
|
|
b1a0e4 |
+ **/
|
|
|
b1a0e4 |
+void
|
|
|
b1a0e4 |
+e_signal_disconnect_notify_handler (gpointer instance,
|
|
|
b1a0e4 |
+ gulong *handler_id)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ g_return_if_fail (instance != NULL);
|
|
|
b1a0e4 |
+ g_return_if_fail (handler_id != NULL);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!*handler_id)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_signal_handler_disconnect (instance, *handler_id);
|
|
|
b1a0e4 |
+ *handler_id = 0;
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-misc-utils.h.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-misc-utils.h
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-misc-utils.h.labels-gsettings-busy-loop 2014-06-05 12:50:43.382256022 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-misc-utils.h 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -185,6 +185,27 @@ gboolean e_binding_transform_uid_to_sour
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
gboolean e_misc_utils_is_help_package_installed (void);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+gulong e_signal_connect_notify (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data);
|
|
|
b1a0e4 |
+gulong e_signal_connect_notify_after (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data);
|
|
|
b1a0e4 |
+gulong e_signal_connect_notify_swapped (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer user_data);
|
|
|
b1a0e4 |
+gulong e_signal_connect_notify_object (gpointer instance,
|
|
|
b1a0e4 |
+ const gchar *notify_name,
|
|
|
b1a0e4 |
+ GCallback c_handler,
|
|
|
b1a0e4 |
+ gpointer gobject,
|
|
|
b1a0e4 |
+ GConnectFlags connect_flags);
|
|
|
b1a0e4 |
+void e_signal_disconnect_notify_handler
|
|
|
b1a0e4 |
+ (gpointer instance,
|
|
|
b1a0e4 |
+ gulong *handler_id);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
G_END_DECLS
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#endif /* E_MISC_UTILS_H */
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-online-button.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-online-button.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-online-button.c.labels-gsettings-busy-loop 2013-07-23 14:52:00.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-online-button.c 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -23,6 +23,8 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <glib/gi18n.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
#define E_ONLINE_BUTTON_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
((obj), E_TYPE_ONLINE_BUTTON, EOnlineButtonPrivate))
|
|
|
b1a0e4 |
@@ -155,11 +157,11 @@ e_online_button_init (EOnlineButton *but
|
|
|
b1a0e4 |
button->priv->image = g_object_ref (widget);
|
|
|
b1a0e4 |
gtk_widget_show (widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
button, "notify::online",
|
|
|
b1a0e4 |
G_CALLBACK (online_button_update_tooltip), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
button, "notify::sensitive",
|
|
|
b1a0e4 |
G_CALLBACK (online_button_update_tooltip), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-paned.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-paned.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-paned.c.labels-gsettings-busy-loop 2013-07-23 14:52:14.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-paned.c 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -27,6 +27,8 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include <glib/gi18n-lib.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
#define E_PANED_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
((obj), E_TYPE_PANED, EPanedPrivate))
|
|
|
b1a0e4 |
@@ -376,11 +378,11 @@ e_paned_init (EPaned *paned)
|
|
|
b1a0e4 |
paned->priv->proportion = 0.5;
|
|
|
b1a0e4 |
paned->priv->fixed_resize = TRUE;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
paned, "notify::orientation",
|
|
|
b1a0e4 |
G_CALLBACK (paned_notify_orientation_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
paned, "notify::position",
|
|
|
b1a0e4 |
G_CALLBACK (paned_notify_position_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -472,6 +474,9 @@ e_paned_set_proportion (EPaned *paned,
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_PANED (paned));
|
|
|
b1a0e4 |
g_return_if_fail (CLAMP (proportion, 0.0, 1.0) == proportion);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (paned->priv->proportion == proportion)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
paned->priv->proportion = proportion;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
paned->priv->sync_request = SYNC_REQUEST_PROPORTION;
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-photo-cache.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-photo-cache.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-photo-cache.c.labels-gsettings-busy-loop 2013-07-23 14:52:08.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-photo-cache.c 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -708,6 +708,9 @@ e_photo_cache_set_local_only (EPhotoCach
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_PHOTO_CACHE (photo_cache));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (photo_cache->priv->local_only == local_only)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
photo_cache->priv->local_only = local_only;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Reset the cache. */
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-picture-gallery.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-picture-gallery.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-picture-gallery.c.labels-gsettings-busy-loop 2013-07-23 14:52:01.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-picture-gallery.c 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -26,6 +26,7 @@
|
|
|
b1a0e4 |
#include "e-picture-gallery.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#include "e-icon-factory.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_PICTURE_GALLERY_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -378,7 +379,7 @@ picture_gallery_constructed (GObject *ob
|
|
|
b1a0e4 |
gtk_target_table_free (targets, n_targets);
|
|
|
b1a0e4 |
gtk_target_list_unref (list);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (object, "notify::visible", G_CALLBACK (visible_cb), NULL);
|
|
|
b1a0e4 |
+ e_signal_connect_notify (object, "notify::visible", G_CALLBACK (visible_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-source-config-dialog.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-source-config-dialog.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-source-config-dialog.c.labels-gsettings-busy-loop 2013-07-23 14:52:02.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-source-config-dialog.c 2014-06-05 12:50:44.146250470 +0200
|
|
|
b1a0e4 |
@@ -21,6 +21,7 @@
|
|
|
b1a0e4 |
#include "e-alert-bar.h"
|
|
|
b1a0e4 |
#include "e-alert-dialog.h"
|
|
|
b1a0e4 |
#include "e-alert-sink.h"
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_SOURCE_CONFIG_DIALOG_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
@@ -270,7 +271,7 @@ source_config_dialog_constructed (GObjec
|
|
|
b1a0e4 |
priv->alert_bar = g_object_ref (widget);
|
|
|
b1a0e4 |
/* EAlertBar controls its own visibility. */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- handler_id = g_signal_connect (
|
|
|
b1a0e4 |
+ handler_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
priv->alert_bar, "notify::visible",
|
|
|
b1a0e4 |
G_CALLBACK (source_config_alert_bar_visible_cb), object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-spell-entry.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-spell-entry.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-spell-entry.c.labels-gsettings-busy-loop 2013-07-23 14:52:01.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-spell-entry.c 2014-06-05 12:50:44.147250469 +0200
|
|
|
b1a0e4 |
@@ -27,6 +27,7 @@
|
|
|
b1a0e4 |
#include <editor/gtkhtml-spell-language.h>
|
|
|
b1a0e4 |
#include <editor/gtkhtml-spell-checker.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include "e-misc-utils.h"
|
|
|
b1a0e4 |
#include "e-spell-entry.h"
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
#define E_SPELL_ENTRY_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
@@ -879,7 +880,7 @@ e_spell_entry_init (ESpellEntry *spell_e
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
spell_entry, "changed",
|
|
|
b1a0e4 |
G_CALLBACK (spell_entry_changed), NULL);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
spell_entry, "notify::scroll-offset",
|
|
|
b1a0e4 |
G_CALLBACK (spell_entry_notify_scroll_offset), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-table.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table.c.labels-gsettings-busy-loop 2013-07-23 14:52:01.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table.c 2014-06-05 12:50:44.147250469 +0200
|
|
|
b1a0e4 |
@@ -1134,7 +1134,7 @@ et_build_groups (ETable *et)
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
et->group, "start_drag",
|
|
|
b1a0e4 |
G_CALLBACK (group_start_drag), et);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
et->group, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (group_is_editing_changed_cb), et);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1516,7 +1516,7 @@ e_table_setup_table (ETable *e_table,
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
e_table->click_to_add, "cursor_change",
|
|
|
b1a0e4 |
G_CALLBACK (click_to_add_cursor_change), e_table);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
e_table->click_to_add, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (click_to_add_is_editing_changed_cb), e_table);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -2376,7 +2376,7 @@ et_set_property (GObject *object,
|
|
|
b1a0e4 |
etable->click_to_add, "cursor_change",
|
|
|
b1a0e4 |
G_CALLBACK (click_to_add_cursor_change),
|
|
|
b1a0e4 |
etable);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
etable->click_to_add, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (click_to_add_is_editing_changed_cb), etable);
|
|
|
b1a0e4 |
} else {
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-click-to-add.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-table-click-to-add.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-click-to-add.c.labels-gsettings-busy-loop 2013-07-23 14:51:59.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-click-to-add.c 2014-06-05 12:50:44.147250469 +0200
|
|
|
b1a0e4 |
@@ -414,7 +414,7 @@ finish_editing (ETableClickToAdd *etcta)
|
|
|
b1a0e4 |
etcta->row, "key_press",
|
|
|
b1a0e4 |
G_CALLBACK (item_key_press), etcta);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
etcta->row, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (table_click_to_add_row_is_editing_changed_cb), etcta);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -471,7 +471,7 @@ etcta_event (GnomeCanvasItem *item,
|
|
|
b1a0e4 |
etcta->row, "key_press",
|
|
|
b1a0e4 |
G_CALLBACK (item_key_press), etcta);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
etcta->row, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (table_click_to_add_row_is_editing_changed_cb), etcta);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-group-leaf.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-table-group-leaf.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-group-leaf.c.labels-gsettings-busy-loop 2013-07-23 14:52:16.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-group-leaf.c 2014-06-05 12:50:44.147250469 +0200
|
|
|
b1a0e4 |
@@ -108,9 +108,7 @@ etgl_dispose (GObject *object)
|
|
|
b1a0e4 |
etgl->item,
|
|
|
b1a0e4 |
etgl->etgl_start_drag_id);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_handlers_disconnect_by_func (
|
|
|
b1a0e4 |
- etgl->item,
|
|
|
b1a0e4 |
- etgl_item_is_editing_changed_cb, etgl);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (etgl->item, &etgl->notify_is_editing_id);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
etgl->etgl_cursor_change_id = 0;
|
|
|
b1a0e4 |
etgl->etgl_cursor_activated_id = 0;
|
|
|
b1a0e4 |
@@ -346,7 +344,7 @@ etgl_realize (GnomeCanvasItem *item)
|
|
|
b1a0e4 |
etgl->item, "start_drag",
|
|
|
b1a0e4 |
G_CALLBACK (etgl_start_drag), etgl);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ etgl->notify_is_editing_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
etgl->item, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (etgl_item_is_editing_changed_cb), etgl);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-table-group-leaf.h.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-table-group-leaf.h
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-table-group-leaf.h.labels-gsettings-busy-loop 2013-07-23 14:52:13.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-table-group-leaf.h 2014-06-05 12:50:44.148250463 +0200
|
|
|
b1a0e4 |
@@ -91,6 +91,8 @@ struct _ETableGroupLeaf {
|
|
|
b1a0e4 |
gint etgl_start_drag_id;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
ESelectionModel *selection_model;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gulong notify_is_editing_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _ETableGroupLeafClass {
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-tree.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-tree.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-tree.c.labels-gsettings-busy-loop 2013-08-03 15:22:52.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-tree.c 2014-06-05 12:50:44.148250463 +0200
|
|
|
b1a0e4 |
@@ -1156,7 +1156,7 @@ et_build_item (ETree *et)
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
et->priv->item, "start_drag",
|
|
|
b1a0e4 |
G_CALLBACK (item_start_drag), et);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
et->priv->item, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (tree_item_is_editing_changed_cb), et);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-web-view.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-web-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-web-view.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.915252151 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-web-view.c 2014-06-05 12:53:23.108084994 +0200
|
|
|
b1a0e4 |
@@ -72,6 +72,8 @@ struct _EWebViewPrivate {
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
GSettings *font_settings;
|
|
|
b1a0e4 |
GSettings *aliasing_settings;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ GHashTable *old_settings;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
enum {
|
|
|
b1a0e4 |
@@ -704,6 +706,11 @@ web_view_finalize (GObject *object)
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
priv = E_WEB_VIEW_GET_PRIVATE (object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (priv->old_settings) {
|
|
|
b1a0e4 |
+ g_hash_table_destroy (priv->old_settings);
|
|
|
b1a0e4 |
+ priv->old_settings = NULL;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
/* All URI requests should be complete or cancelled by now. */
|
|
|
b1a0e4 |
if (priv->requests != NULL)
|
|
|
b1a0e4 |
g_warning ("Finalizing EWebView with active URI requests");
|
|
|
b1a0e4 |
@@ -1333,6 +1340,28 @@ web_view_drag_motion (GtkWidget *widget,
|
|
|
b1a0e4 |
return FALSE;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
+e_web_view_test_change_and_update_fonts_cb (EWebView *web_view,
|
|
|
b1a0e4 |
+ const gchar *key,
|
|
|
b1a0e4 |
+ GSettings *settings)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ GVariant *new_value, *old_value;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ new_value = g_settings_get_value (settings, key);
|
|
|
b1a0e4 |
+ old_value = g_hash_table_lookup (web_view->priv->old_settings, key);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!new_value || !old_value || !g_variant_equal (new_value, old_value)) {
|
|
|
b1a0e4 |
+ if (new_value)
|
|
|
b1a0e4 |
+ g_hash_table_insert (web_view->priv->old_settings, g_strdup (key), new_value);
|
|
|
b1a0e4 |
+ else
|
|
|
b1a0e4 |
+ g_hash_table_remove (web_view->priv->old_settings, key);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_web_view_update_fonts (web_view);
|
|
|
b1a0e4 |
+ } else if (new_value) {
|
|
|
b1a0e4 |
+ g_variant_unref (new_value);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
static gpointer
|
|
|
b1a0e4 |
web_view_disable_webkit_3rd_party_plugins (gpointer unused)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
@@ -1602,6 +1631,8 @@ e_web_view_init (EWebView *web_view)
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
web_view->priv = E_WEB_VIEW_GET_PRIVATE (web_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ web_view->priv->old_settings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
web_view, "create-plugin-widget",
|
|
|
b1a0e4 |
G_CALLBACK (web_view_create_plugin_widget_cb), NULL);
|
|
|
b1a0e4 |
@@ -1624,7 +1655,7 @@ e_web_view_init (EWebView *web_view)
|
|
|
b1a0e4 |
web_view, "context-menu",
|
|
|
b1a0e4 |
G_CALLBACK (web_view_context_menu_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
web_view, "notify::load-status",
|
|
|
b1a0e4 |
G_CALLBACK (web_view_load_status_changed_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1645,10 +1676,10 @@ e_web_view_init (EWebView *web_view)
|
|
|
b1a0e4 |
settings = g_settings_new ("org.gnome.desktop.interface");
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
settings, "changed::font-name",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), web_view);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_web_view_test_change_and_update_fonts_cb), web_view);
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
settings, "changed::monospace-font-name",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), web_view);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_web_view_test_change_and_update_fonts_cb), web_view);
|
|
|
b1a0e4 |
web_view->priv->font_settings = settings;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* This schema is optional. Use if available. */
|
|
|
b1a0e4 |
@@ -1659,7 +1690,7 @@ e_web_view_init (EWebView *web_view)
|
|
|
b1a0e4 |
settings = g_settings_new (id);
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
settings, "changed::antialiasing",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), web_view);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_web_view_test_change_and_update_fonts_cb), web_view);
|
|
|
b1a0e4 |
web_view->priv->aliasing_settings = settings;
|
|
|
b1a0e4 |
g_settings_schema_unref (settings_schema);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/e-util/e-web-view-gtkhtml.c.labels-gsettings-busy-loop evolution-3.8.5/e-util/e-web-view-gtkhtml.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/e-util/e-web-view-gtkhtml.c.labels-gsettings-busy-loop 2013-07-23 14:52:08.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/e-util/e-web-view-gtkhtml.c 2014-06-05 12:50:44.149250456 +0200
|
|
|
b1a0e4 |
@@ -1793,6 +1793,9 @@ e_web_view_gtkhtml_set_animate (EWebView
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_animate (GTK_HTML (web_view)) == animate)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_animate (GTK_HTML (web_view), animate);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "animate");
|
|
|
b1a0e4 |
@@ -1819,6 +1822,9 @@ e_web_view_gtkhtml_set_caret_mode (EWebV
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_caret_mode (GTK_HTML (web_view)) == caret_mode)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_caret_mode (GTK_HTML (web_view), caret_mode);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "caret-mode");
|
|
|
b1a0e4 |
@@ -1846,6 +1852,9 @@ e_web_view_gtkhtml_set_disable_printing
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->disable_printing == disable_printing)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
web_view->priv->disable_printing = disable_printing;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "disable-printing");
|
|
|
b1a0e4 |
@@ -1865,6 +1874,9 @@ e_web_view_gtkhtml_set_disable_save_to_d
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->disable_save_to_disk == disable_save_to_disk)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
web_view->priv->disable_save_to_disk = disable_save_to_disk;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "disable-save-to-disk");
|
|
|
b1a0e4 |
@@ -1891,6 +1903,9 @@ e_web_view_gtkhtml_set_editable (EWebVie
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_editable (GTK_HTML (web_view)) == editable)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_editable (GTK_HTML (web_view), editable);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "editable");
|
|
|
b1a0e4 |
@@ -1917,6 +1932,9 @@ e_web_view_gtkhtml_set_inline_spelling (
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_inline_spelling (GTK_HTML (web_view)) == inline_spelling)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_inline_spelling (GTK_HTML (web_view), inline_spelling);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "inline-spelling");
|
|
|
b1a0e4 |
@@ -1943,6 +1961,9 @@ e_web_view_gtkhtml_set_magic_links (EWeb
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_magic_links (GTK_HTML (web_view)) == magic_links)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_magic_links (GTK_HTML (web_view), magic_links);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "magic-links");
|
|
|
b1a0e4 |
@@ -1969,6 +1990,9 @@ e_web_view_gtkhtml_set_magic_smileys (EW
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (gtk_html_get_magic_smileys (GTK_HTML (web_view)) == magic_smileys)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
gtk_html_set_magic_smileys (GTK_HTML (web_view), magic_smileys);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_notify (G_OBJECT (web_view), "magic-smileys");
|
|
|
b1a0e4 |
@@ -1988,6 +2012,9 @@ e_web_view_gtkhtml_set_selected_uri (EWe
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (g_strcmp0 (web_view->priv->selected_uri, selected_uri) == 0)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_free (web_view->priv->selected_uri);
|
|
|
b1a0e4 |
web_view->priv->selected_uri = g_strdup (selected_uri);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -2008,6 +2035,9 @@ e_web_view_gtkhtml_set_cursor_image (EWe
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->cursor_image == image)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (image != NULL)
|
|
|
b1a0e4 |
g_object_ref (image);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -2033,6 +2063,9 @@ e_web_view_gtkhtml_set_open_proxy (EWebV
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->open_proxy == open_proxy)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (open_proxy != NULL) {
|
|
|
b1a0e4 |
g_return_if_fail (GTK_IS_ACTION (open_proxy));
|
|
|
b1a0e4 |
g_object_ref (open_proxy);
|
|
|
b1a0e4 |
@@ -2068,6 +2101,9 @@ e_web_view_gtkhtml_set_print_proxy (EWeb
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->print_proxy == print_proxy)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (print_proxy != NULL) {
|
|
|
b1a0e4 |
g_return_if_fail (GTK_IS_ACTION (print_proxy));
|
|
|
b1a0e4 |
g_object_ref (print_proxy);
|
|
|
b1a0e4 |
@@ -2095,6 +2131,9 @@ e_web_view_gtkhtml_set_save_as_proxy (EW
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
g_return_if_fail (E_IS_WEB_VIEW_GTKHTML (web_view));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (web_view->priv->save_as_proxy == save_as_proxy)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (save_as_proxy != NULL) {
|
|
|
b1a0e4 |
g_return_if_fail (GTK_IS_ACTION (save_as_proxy));
|
|
|
b1a0e4 |
g_object_ref (save_as_proxy);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/libemail-engine/e-mail-session.c.labels-gsettings-busy-loop evolution-3.8.5/libemail-engine/e-mail-session.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/libemail-engine/e-mail-session.c.labels-gsettings-busy-loop 2013-07-23 14:51:34.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/libemail-engine/e-mail-session.c 2014-06-05 12:50:44.149250456 +0200
|
|
|
b1a0e4 |
@@ -406,6 +406,9 @@ mail_session_set_junk_filter_name (EMail
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (camel_session_get_junk_filter (CAMEL_SESSION (session)) == junk_filter)
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
camel_session_set_junk_filter (CAMEL_SESSION (session), junk_filter);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* XXX We emit the "notify" signal in mail_session_notify(). */
|
|
|
b1a0e4 |
@@ -875,7 +878,7 @@ mail_session_idle_refresh_cb (EMailSessi
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Listen for network state changes and force a
|
|
|
b1a0e4 |
* mail store refresh when coming back online. */
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
session, "notify::online",
|
|
|
b1a0e4 |
G_CALLBACK (mail_session_force_refresh), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1130,7 +1133,7 @@ mail_session_constructed (GObject *objec
|
|
|
b1a0e4 |
G_CALLBACK (mail_session_source_disabled_cb), session);
|
|
|
b1a0e4 |
session->priv->source_disabled_handler_id = handler_id;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- handler_id = g_signal_connect (
|
|
|
b1a0e4 |
+ handler_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
registry, "notify::default-mail-account",
|
|
|
b1a0e4 |
G_CALLBACK (mail_session_default_mail_account_cb), session);
|
|
|
b1a0e4 |
session->priv->default_mail_account_handler_id = handler_id;
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/libemail-engine/mail-config.c.labels-gsettings-busy-loop evolution-3.8.5/libemail-engine/mail-config.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/libemail-engine/mail-config.c.labels-gsettings-busy-loop 2014-06-05 12:51:47.365791700 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/libemail-engine/mail-config.c 2014-06-05 12:53:23.108084994 +0200
|
|
|
b1a0e4 |
@@ -74,11 +74,24 @@ settings_jh_headers_changed (GSettings *
|
|
|
b1a0e4 |
gchar **strv;
|
|
|
b1a0e4 |
gint i;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ strv = g_settings_get_strv (settings, "junk-custom-header");
|
|
|
b1a0e4 |
+ if (key) {
|
|
|
b1a0e4 |
+ for (i = 0, node = config->jh_header; strv[i] && node; i++, node = g_slist_next (node)) {
|
|
|
b1a0e4 |
+ if (g_strcmp0 (node->data, strv[i]) != 0)
|
|
|
b1a0e4 |
+ break;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* both lists are read to the end, thus they are the same */
|
|
|
b1a0e4 |
+ if (!node && !strv[i]) {
|
|
|
b1a0e4 |
+ g_strfreev (strv);
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_slist_foreach (config->jh_header, (GFunc) g_free, NULL);
|
|
|
b1a0e4 |
g_slist_free (config->jh_header);
|
|
|
b1a0e4 |
config->jh_header = NULL;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- strv = g_settings_get_strv (settings, "junk-custom-header");
|
|
|
b1a0e4 |
for (i = 0; strv[i] != NULL; i++)
|
|
|
b1a0e4 |
config->jh_header = g_slist_append (config->jh_header, g_strdup (strv[i]));
|
|
|
b1a0e4 |
g_strfreev (strv);
|
|
|
b1a0e4 |
@@ -109,6 +122,9 @@ settings_jh_check_changed (GSettings *se
|
|
|
b1a0e4 |
const gchar *key,
|
|
|
b1a0e4 |
EMailSession *session)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ if (key && config->jh_check == g_settings_get_boolean (settings, "junk-check-custom-header"))
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
config->jh_check = g_settings_get_boolean (settings, "junk-check-custom-header");
|
|
|
b1a0e4 |
if (!config->jh_check) {
|
|
|
b1a0e4 |
camel_session_set_junk_headers (
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-config-assistant.c.labels-gsettings-busy-loop evolution-3.8.5/mail/e-mail-config-assistant.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-config-assistant.c.labels-gsettings-busy-loop 2013-07-23 14:51:57.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-config-assistant.c 2014-06-05 12:50:44.149250456 +0200
|
|
|
b1a0e4 |
@@ -630,7 +630,7 @@ mail_config_assistant_constructed (GObje
|
|
|
b1a0e4 |
page, "email-address",
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
page, "notify::active-backend",
|
|
|
b1a0e4 |
G_CALLBACK (mail_config_assistant_notify_account_backend),
|
|
|
b1a0e4 |
assistant);
|
|
|
b1a0e4 |
@@ -713,7 +713,7 @@ mail_config_assistant_constructed (GObje
|
|
|
b1a0e4 |
page, "email-address",
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
page, "notify::active-backend",
|
|
|
b1a0e4 |
G_CALLBACK (mail_config_assistant_notify_transport_backend),
|
|
|
b1a0e4 |
assistant);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-display.c.labels-gsettings-busy-loop evolution-3.8.5/mail/e-mail-display.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-display.c.labels-gsettings-busy-loop 2013-07-23 14:51:53.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-display.c 2014-06-05 12:53:23.109085002 +0200
|
|
|
b1a0e4 |
@@ -66,6 +66,8 @@ struct _EMailDisplayPrivate {
|
|
|
b1a0e4 |
GHashTable *widgets;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
guint scheduled_reload;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ GHashTable *old_settings;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
enum {
|
|
|
b1a0e4 |
@@ -571,7 +573,7 @@ plugin_widget_set_parent_element (GtkWid
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Assign the WebKitDOMElement to "parent_element" data of the GtkWidget
|
|
|
b1a0e4 |
* and the GtkWidget to "widget" data of the DOM Element */
|
|
|
b1a0e4 |
- g_object_set_data (G_OBJECT (widget), "parent_element", element);
|
|
|
b1a0e4 |
+ g_object_set_data_full (G_OBJECT (widget), "parent_element", g_object_ref (element), g_object_unref);
|
|
|
b1a0e4 |
g_object_set_data (G_OBJECT (element), "widget", widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_bind_property (
|
|
|
b1a0e4 |
@@ -1365,6 +1367,22 @@ mail_display_dispose (GObject *object)
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
+mail_display_finalize (GObject *object)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ EMailDisplayPrivate *priv;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ priv = E_MAIL_DISPLAY_GET_PRIVATE (object);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (priv->old_settings) {
|
|
|
b1a0e4 |
+ g_hash_table_destroy (priv->old_settings);
|
|
|
b1a0e4 |
+ priv->old_settings = NULL;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* Chain up to parent's finalize() method. */
|
|
|
b1a0e4 |
+ G_OBJECT_CLASS (e_mail_display_parent_class)->finalize (object);
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
mail_display_constructed (GObject *object)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
e_extensible_load_extensions (E_EXTENSIBLE (object));
|
|
|
b1a0e4 |
@@ -1486,6 +1504,28 @@ mail_display_set_fonts (EWebView *web_vi
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
+e_mail_display_test_change_and_update_fonts_cb (EMailDisplay *mail_display,
|
|
|
b1a0e4 |
+ const gchar *key,
|
|
|
b1a0e4 |
+ GSettings *settings)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ GVariant *new_value, *old_value;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ new_value = g_settings_get_value (settings, key);
|
|
|
b1a0e4 |
+ old_value = g_hash_table_lookup (mail_display->priv->old_settings, key);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (!new_value || !old_value || !g_variant_equal (new_value, old_value)) {
|
|
|
b1a0e4 |
+ if (new_value)
|
|
|
b1a0e4 |
+ g_hash_table_insert (mail_display->priv->old_settings, g_strdup (key), new_value);
|
|
|
b1a0e4 |
+ else
|
|
|
b1a0e4 |
+ g_hash_table_remove (mail_display->priv->old_settings, key);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_web_view_update_fonts (E_WEB_VIEW (mail_display));
|
|
|
b1a0e4 |
+ } else if (new_value) {
|
|
|
b1a0e4 |
+ g_variant_unref (new_value);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
e_mail_display_class_init (EMailDisplayClass *class)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
GObjectClass *object_class;
|
|
|
b1a0e4 |
@@ -1499,6 +1539,7 @@ e_mail_display_class_init (EMailDisplayC
|
|
|
b1a0e4 |
object_class->set_property = mail_display_set_property;
|
|
|
b1a0e4 |
object_class->get_property = mail_display_get_property;
|
|
|
b1a0e4 |
object_class->dispose = mail_display_dispose;
|
|
|
b1a0e4 |
+ object_class->finalize = mail_display_finalize;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
widget_class = GTK_WIDGET_CLASS (class);
|
|
|
b1a0e4 |
widget_class->realize = mail_display_realize;
|
|
|
b1a0e4 |
@@ -1574,6 +1615,8 @@ e_mail_display_init (EMailDisplay *displ
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
display->priv = E_MAIL_DISPLAY_GET_PRIVATE (display);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ display->priv->old_settings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
/* Set invalid mode so that MODE property initialization is run
|
|
|
b1a0e4 |
* completely (see e_mail_display_set_mode) */
|
|
|
b1a0e4 |
display->priv->mode = E_MAIL_FORMATTER_MODE_INVALID;
|
|
|
b1a0e4 |
@@ -1601,28 +1644,28 @@ e_mail_display_init (EMailDisplay *displ
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
display, "frame-created",
|
|
|
b1a0e4 |
G_CALLBACK (mail_display_frame_created), NULL);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
display, "notify::uri",
|
|
|
b1a0e4 |
G_CALLBACK (mail_display_uri_changed), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
display->priv->settings = g_settings_new ("org.gnome.evolution.mail");
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
display->priv->settings , "changed::monospace-font",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), display);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_test_change_and_update_fonts_cb), display);
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
display->priv->settings , "changed::variable-width-font",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), display);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_test_change_and_update_fonts_cb), display);
|
|
|
b1a0e4 |
g_signal_connect_swapped (
|
|
|
b1a0e4 |
display->priv->settings , "changed::use-custom-font",
|
|
|
b1a0e4 |
- G_CALLBACK (e_web_view_update_fonts), display);
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_test_change_and_update_fonts_cb), display);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
e_web_view_update_fonts (E_WEB_VIEW (display));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
main_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW (display));
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
main_frame, "notify::load-status",
|
|
|
b1a0e4 |
G_CALLBACK (setup_DOM_bindings), NULL);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
main_frame, "notify::load-status",
|
|
|
b1a0e4 |
G_CALLBACK (mail_parts_bind_dom), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -1698,37 +1741,60 @@ e_mail_display_set_mode (EMailDisplay *d
|
|
|
b1a0e4 |
display->priv->formatter = formatter;
|
|
|
b1a0e4 |
mail_display_update_formatter_colors (display);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
formatter, "notify::image-loading-policy",
|
|
|
b1a0e4 |
G_CALLBACK (formatter_image_loading_policy_changed_cb),
|
|
|
b1a0e4 |
- display);
|
|
|
b1a0e4 |
+ display, 0);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_object_connect (
|
|
|
b1a0e4 |
- formatter,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::charset",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::image-loading-policy",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::mark-citations",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::show-sender-photo",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::show-real-date",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::animate-images",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::text-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::body-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::citation-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::content-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::frame-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
- "swapped-object-signal::notify::header-color",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::charset",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::image-loading-policy",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::mark-citations",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::show-sender-photo",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::show-real-date",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::animate-images",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::text-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::body-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::citation-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::content-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::frame-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
+ formatter, "notify::header-color",
|
|
|
b1a0e4 |
+ G_CALLBACK (e_mail_display_reload), display, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_object_connect (formatter,
|
|
|
b1a0e4 |
"swapped-object-signal::need-redraw",
|
|
|
b1a0e4 |
G_CALLBACK (e_mail_display_reload), display,
|
|
|
b1a0e4 |
NULL);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-label-list-store.c.labels-gsettings-busy-loop evolution-3.8.5/mail/e-mail-label-list-store.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-label-list-store.c.labels-gsettings-busy-loop 2013-07-23 14:51:54.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-label-list-store.c 2014-06-05 12:50:44.150250448 +0200
|
|
|
b1a0e4 |
@@ -36,9 +36,17 @@
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
((obj), E_TYPE_MAIL_LABEL_LIST_STORE, EMailLabelListStorePrivate))
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+enum {
|
|
|
b1a0e4 |
+ CHANGED,
|
|
|
b1a0e4 |
+ LAST_SIGNAL
|
|
|
b1a0e4 |
+};
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static guint signals[LAST_SIGNAL];
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
struct _EMailLabelListStorePrivate {
|
|
|
b1a0e4 |
GHashTable *tag_index;
|
|
|
b1a0e4 |
GSettings *mail_settings;
|
|
|
b1a0e4 |
+ guint idle_changed_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static struct {
|
|
|
b1a0e4 |
@@ -180,6 +188,11 @@ mail_label_list_store_dispose (GObject *
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
priv = E_MAIL_LABEL_LIST_STORE_GET_PRIVATE (object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ if (priv->idle_changed_id) {
|
|
|
b1a0e4 |
+ g_source_remove (priv->idle_changed_id);
|
|
|
b1a0e4 |
+ priv->idle_changed_id = 0;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (priv->mail_settings != NULL) {
|
|
|
b1a0e4 |
g_object_unref (priv->mail_settings);
|
|
|
b1a0e4 |
priv->mail_settings = NULL;
|
|
|
b1a0e4 |
@@ -204,14 +217,17 @@ mail_label_list_store_finalize (GObject
|
|
|
b1a0e4 |
finalize (object);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
-static void
|
|
|
b1a0e4 |
-labels_model_changed_cb (EMailLabelListStore *store)
|
|
|
b1a0e4 |
+static gboolean
|
|
|
b1a0e4 |
+labels_model_changed_idle_cb (gpointer user_data)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
+ EMailLabelListStore *store = user_data;
|
|
|
b1a0e4 |
GPtrArray *array;
|
|
|
b1a0e4 |
GtkTreeIter tmp_iter;
|
|
|
b1a0e4 |
gboolean iter_set;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_return_if_fail (E_IS_MAIL_LABEL_LIST_STORE (store));
|
|
|
b1a0e4 |
+ g_return_val_if_fail (E_IS_MAIL_LABEL_LIST_STORE (store), FALSE);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ store->priv->idle_changed_id = 0;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Make sure we don't enter an infinite synchronizing loop */
|
|
|
b1a0e4 |
g_signal_handlers_block_by_func (
|
|
|
b1a0e4 |
@@ -249,6 +265,21 @@ labels_model_changed_cb (EMailLabelListS
|
|
|
b1a0e4 |
g_signal_handlers_unblock_by_func (
|
|
|
b1a0e4 |
store->priv->mail_settings,
|
|
|
b1a0e4 |
labels_settings_changed_cb, store);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_signal_emit (store, signals[CHANGED], 0);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ return FALSE;
|
|
|
b1a0e4 |
+}
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+static void
|
|
|
b1a0e4 |
+labels_model_changed_cb (EMailLabelListStore *store)
|
|
|
b1a0e4 |
+{
|
|
|
b1a0e4 |
+ g_return_if_fail (E_IS_MAIL_LABEL_LIST_STORE (store));
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* do the actual save and signal emission on idle,
|
|
|
b1a0e4 |
+ to accumulate as many changes as possible */
|
|
|
b1a0e4 |
+ if (!store->priv->idle_changed_id)
|
|
|
b1a0e4 |
+ store->priv->idle_changed_id = g_idle_add (labels_model_changed_idle_cb, store);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
@@ -257,10 +288,50 @@ labels_settings_changed_cb (GSettings *s
|
|
|
b1a0e4 |
gpointer user_data)
|
|
|
b1a0e4 |
{
|
|
|
b1a0e4 |
EMailLabelListStore *store;
|
|
|
b1a0e4 |
+ GtkTreeModel *model;
|
|
|
b1a0e4 |
+ GtkTreeIter iter;
|
|
|
b1a0e4 |
+ GHashTable *changed_labels;
|
|
|
b1a0e4 |
gchar **strv;
|
|
|
b1a0e4 |
gint i;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
store = E_MAIL_LABEL_LIST_STORE (user_data);
|
|
|
b1a0e4 |
+ model = GTK_TREE_MODEL (store);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ strv = g_settings_get_strv (store->priv->mail_settings, "labels");
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* Check if any label changed first, because GSettings can claim
|
|
|
b1a0e4 |
+ change when nothing changed at all */
|
|
|
b1a0e4 |
+ changed_labels = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
|
|
b1a0e4 |
+ if (gtk_tree_model_get_iter_first (model, &iter)) {
|
|
|
b1a0e4 |
+ do {
|
|
|
b1a0e4 |
+ gchar *label_str = NULL;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gtk_tree_model_get (model, &iter, 0, &label_str, -1);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ if (label_str)
|
|
|
b1a0e4 |
+ g_hash_table_insert (changed_labels, label_str, NULL);
|
|
|
b1a0e4 |
+ } while (gtk_tree_model_iter_next (model, &iter));
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ for (i = 0; strv[i] != NULL; i++) {
|
|
|
b1a0e4 |
+ if (!g_hash_table_remove (changed_labels, strv[i])) {
|
|
|
b1a0e4 |
+ g_hash_table_insert (changed_labels, g_strdup (""), NULL);
|
|
|
b1a0e4 |
+ break;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ } else {
|
|
|
b1a0e4 |
+ /* nothing in the store, thus fill it (pretend change) */
|
|
|
b1a0e4 |
+ g_hash_table_insert (changed_labels, g_strdup (""), NULL);
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* Nothing changed */
|
|
|
b1a0e4 |
+ if (g_hash_table_size (changed_labels) == 0) {
|
|
|
b1a0e4 |
+ g_hash_table_destroy (changed_labels);
|
|
|
b1a0e4 |
+ g_strfreev (strv);
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_hash_table_destroy (changed_labels);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Make sure we don't enter an infinite synchronizing loop */
|
|
|
b1a0e4 |
g_signal_handlers_block_by_func (
|
|
|
b1a0e4 |
@@ -268,8 +339,6 @@ labels_settings_changed_cb (GSettings *s
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
gtk_list_store_clear (GTK_LIST_STORE (store));
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- strv = g_settings_get_strv (store->priv->mail_settings, "labels");
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
for (i = 0; strv[i] != NULL; i++) {
|
|
|
b1a0e4 |
GtkTreeIter iter;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -359,6 +428,14 @@ e_mail_label_list_store_class_init (EMai
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
class->icon_factory = gtk_icon_factory_new ();
|
|
|
b1a0e4 |
gtk_icon_factory_add_default (class->icon_factory);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ signals[CHANGED] = g_signal_new (
|
|
|
b1a0e4 |
+ "changed",
|
|
|
b1a0e4 |
+ G_OBJECT_CLASS_TYPE (class),
|
|
|
b1a0e4 |
+ G_SIGNAL_RUN_FIRST,
|
|
|
b1a0e4 |
+ 0, NULL, NULL,
|
|
|
b1a0e4 |
+ g_cclosure_marshal_VOID__VOID,
|
|
|
b1a0e4 |
+ G_TYPE_NONE, 0);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
static void
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-paned-view.c.labels-gsettings-busy-loop evolution-3.8.5/mail/e-mail-paned-view.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-paned-view.c.labels-gsettings-busy-loop 2013-07-23 14:51:54.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-paned-view.c 2014-06-05 12:50:44.150250448 +0200
|
|
|
b1a0e4 |
@@ -1052,7 +1052,7 @@ e_mail_paned_view_init (EMailPanedView *
|
|
|
b1a0e4 |
view->priv = E_MAIL_PANED_VIEW_GET_PRIVATE (view);
|
|
|
b1a0e4 |
view->priv->enable_show_folder = FALSE;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
view, "notify::group-by-threads",
|
|
|
b1a0e4 |
G_CALLBACK (mail_paned_view_notify_group_by_threads_cb),
|
|
|
b1a0e4 |
NULL);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/e-mail-reader.c.labels-gsettings-busy-loop evolution-3.8.5/mail/e-mail-reader.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/e-mail-reader.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.920252115 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/e-mail-reader.c 2014-06-05 12:50:44.150250448 +0200
|
|
|
b1a0e4 |
@@ -4174,7 +4174,7 @@ connect_signals:
|
|
|
b1a0e4 |
display, "key-press-event",
|
|
|
b1a0e4 |
G_CALLBACK (mail_reader_key_press_event_cb), reader);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
display, "notify::load-status",
|
|
|
b1a0e4 |
G_CALLBACK (mail_reader_load_status_changed_cb), reader);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/mail/em-filter-rule.c.labels-gsettings-busy-loop evolution-3.8.5/mail/em-filter-rule.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/mail/em-filter-rule.c.labels-gsettings-busy-loop 2013-07-23 14:51:56.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/mail/em-filter-rule.c 2014-06-05 12:50:44.151250440 +0200
|
|
|
b1a0e4 |
@@ -658,7 +658,7 @@ get_widget (EFilterRule *fr,
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_object_set_data (G_OBJECT (add), "scrolled-window", scrolledwindow);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
vadj, "notify::upper",
|
|
|
b1a0e4 |
G_CALLBACK (ensure_scrolled_height_cb), scrolledwindow);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/addressbook/e-book-shell-view-private.c.labels-gsettings-busy-loop evolution-3.8.5/modules/addressbook/e-book-shell-view-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/addressbook/e-book-shell-view-private.c.labels-gsettings-busy-loop 2013-07-23 14:51:45.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/addressbook/e-book-shell-view-private.c 2014-06-05 12:50:44.151250440 +0200
|
|
|
b1a0e4 |
@@ -333,7 +333,7 @@ book_shell_view_activate_selected_source
|
|
|
b1a0e4 |
G_CALLBACK (contacts_removed),
|
|
|
b1a0e4 |
book_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
model, "notify::query",
|
|
|
b1a0e4 |
G_CALLBACK (model_query_changed_cb),
|
|
|
b1a0e4 |
book_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
@@ -529,7 +529,7 @@ e_book_shell_view_private_init (EBookShe
|
|
|
b1a0e4 |
if (!gal_view_collection_loaded (shell_view_class->view_collection))
|
|
|
b1a0e4 |
book_shell_view_load_view_collection (shell_view_class);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
book_shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (book_shell_view_notify_view_id_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-calendar-preferences.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-calendar-preferences.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-calendar-preferences.c.labels-gsettings-busy-loop 2013-07-23 14:51:48.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-calendar-preferences.c 2014-06-05 12:50:44.151250440 +0200
|
|
|
b1a0e4 |
@@ -513,7 +513,7 @@ calendar_preferences_construct (ECalenda
|
|
|
b1a0e4 |
widget, "active",
|
|
|
b1a0e4 |
G_BINDING_BIDIRECTIONAL |
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_settings, "notify::cal-use-system-timezone",
|
|
|
b1a0e4 |
G_CALLBACK (update_system_tz_widgets), prefs);
|
|
|
b1a0e4 |
update_system_tz_widgets (shell_settings, NULL, prefs);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-cal-shell-content.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-cal-shell-content.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-cal-shell-content.c.labels-gsettings-busy-loop 2013-07-23 14:51:47.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-cal-shell-content.c 2014-06-05 12:50:44.151250440 +0200
|
|
|
b1a0e4 |
@@ -415,7 +415,7 @@ cal_shell_content_constructed (GObject *
|
|
|
b1a0e4 |
for (ii = 0; ii < GNOME_CAL_LAST_VIEW; ii++) {
|
|
|
b1a0e4 |
calendar_view = gnome_calendar_get_calendar_view (calendar, ii);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
calendar_view, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -430,7 +430,7 @@ cal_shell_content_constructed (GObject *
|
|
|
b1a0e4 |
priv->notebook, "page",
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
widget, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -521,7 +521,7 @@ cal_shell_content_constructed (GObject *
|
|
|
b1a0e4 |
shell_view);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
widget, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (cal_shell_content_is_editing_changed_cb), shell_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -537,7 +537,7 @@ cal_shell_content_constructed (GObject *
|
|
|
b1a0e4 |
priv->view_instance = view_instance;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (!e_shell_get_express_mode (shell)) {
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (cal_shell_content_notify_view_id_cb),
|
|
|
b1a0e4 |
object);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-cal-shell-settings.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-cal-shell-settings.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-cal-shell-settings.c.labels-gsettings-busy-loop 2013-07-23 14:51:47.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-cal-shell-settings.c 2014-06-05 12:50:44.151250440 +0200
|
|
|
b1a0e4 |
@@ -949,7 +949,7 @@ e_cal_shell_backend_init_settings (EShel
|
|
|
b1a0e4 |
g_object_ref (shell_settings),
|
|
|
b1a0e4 |
(GDestroyNotify) g_object_unref);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_settings, "notify::cal-use-system-timezone",
|
|
|
b1a0e4 |
G_CALLBACK (cal_use_system_timezone_changed_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-cal-shell-view-private.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-cal-shell-view-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-cal-shell-view-private.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.426255699 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-cal-shell-view-private.c 2014-06-05 12:50:44.152250431 +0200
|
|
|
b1a0e4 |
@@ -484,7 +484,7 @@ e_cal_shell_view_private_init (ECalShell
|
|
|
b1a0e4 |
if (!gal_view_collection_loaded (shell_view_class->view_collection))
|
|
|
b1a0e4 |
cal_shell_view_load_view_collection (shell_view_class);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
cal_shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (cal_shell_view_notify_view_id_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-memo-shell-content.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-memo-shell-content.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-memo-shell-content.c.labels-gsettings-busy-loop 2013-07-23 14:51:46.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-memo-shell-content.c 2014-06-05 12:50:44.152250431 +0200
|
|
|
b1a0e4 |
@@ -552,7 +552,7 @@ memo_shell_content_constructed (GObject
|
|
|
b1a0e4 |
G_CALLBACK (memo_shell_content_selection_change_cb),
|
|
|
b1a0e4 |
object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
priv->memo_table, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (memo_shell_content_is_editing_changed_cb), shell_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-memo-shell-view-private.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-memo-shell-view-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-memo-shell-view-private.c.labels-gsettings-busy-loop 2013-07-23 14:51:48.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-memo-shell-view-private.c 2014-06-05 12:50:44.152250431 +0200
|
|
|
b1a0e4 |
@@ -179,7 +179,7 @@ e_memo_shell_view_private_init (EMemoShe
|
|
|
b1a0e4 |
if (!gal_view_collection_loaded (shell_view_class->view_collection))
|
|
|
b1a0e4 |
memo_shell_view_load_view_collection (shell_view_class);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
memo_shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (memo_shell_view_notify_view_id_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-task-shell-content.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-task-shell-content.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-task-shell-content.c.labels-gsettings-busy-loop 2013-07-23 14:51:49.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-task-shell-content.c 2014-06-05 12:50:44.152250431 +0200
|
|
|
b1a0e4 |
@@ -552,7 +552,7 @@ task_shell_content_constructed (GObject
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_content_selection_change_cb),
|
|
|
b1a0e4 |
object);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
priv->task_table, "notify::is-editing",
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_content_is_editing_changed_cb), shell_view);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/calendar/e-task-shell-view-private.c.labels-gsettings-busy-loop evolution-3.8.5/modules/calendar/e-task-shell-view-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/calendar/e-task-shell-view-private.c.labels-gsettings-busy-loop 2013-07-23 14:51:48.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/calendar/e-task-shell-view-private.c 2014-06-05 12:50:44.152250431 +0200
|
|
|
b1a0e4 |
@@ -233,7 +233,7 @@ e_task_shell_view_private_init (ETaskShe
|
|
|
b1a0e4 |
if (!gal_view_collection_loaded (shell_view_class->view_collection))
|
|
|
b1a0e4 |
task_shell_view_load_view_collection (shell_view_class);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
task_shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_view_notify_view_id_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -373,15 +373,15 @@ e_task_shell_view_private_constructed (E
|
|
|
b1a0e4 |
G_BINDING_SYNC_CREATE);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Hide Completed Tasks (enable/units/value) */
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
shell_settings, "notify::cal-hide-completed-tasks",
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_view_schedule_process_completed_tasks),
|
|
|
b1a0e4 |
task_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
shell_settings, "notify::cal-hide-completed-tasks-units",
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_view_schedule_process_completed_tasks),
|
|
|
b1a0e4 |
task_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_object (
|
|
|
b1a0e4 |
shell_settings, "notify::cal-hide-completed-tasks-value",
|
|
|
b1a0e4 |
G_CALLBACK (task_shell_view_schedule_process_completed_tasks),
|
|
|
b1a0e4 |
task_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/mail/e-mail-shell-view-private.c.labels-gsettings-busy-loop evolution-3.8.5/modules/mail/e-mail-shell-view-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/mail/e-mail-shell-view-private.c.labels-gsettings-busy-loop 2014-06-05 12:50:43.868252492 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/mail/e-mail-shell-view-private.c 2014-06-05 12:50:44.153250423 +0200
|
|
|
b1a0e4 |
@@ -599,7 +599,7 @@ e_mail_shell_view_private_init (EMailShe
|
|
|
b1a0e4 |
if (!gal_view_collection_loaded (shell_view_class->view_collection))
|
|
|
b1a0e4 |
mail_shell_view_load_view_collection (shell_view_class);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
mail_shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (mail_shell_view_notify_view_id_cb), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
@@ -750,17 +750,7 @@ e_mail_shell_view_private_constructed (E
|
|
|
b1a0e4 |
mail_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
g_signal_connect_object (
|
|
|
b1a0e4 |
- label_store, "row-changed",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_shell_view_update_search_filter),
|
|
|
b1a0e4 |
- mail_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
- label_store, "row-deleted",
|
|
|
b1a0e4 |
- G_CALLBACK (e_mail_shell_view_update_search_filter),
|
|
|
b1a0e4 |
- mail_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
-
|
|
|
b1a0e4 |
- g_signal_connect_object (
|
|
|
b1a0e4 |
- label_store, "row-inserted",
|
|
|
b1a0e4 |
+ label_store, "changed",
|
|
|
b1a0e4 |
G_CALLBACK (e_mail_shell_view_update_search_filter),
|
|
|
b1a0e4 |
mail_shell_view, G_CONNECT_SWAPPED);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/offline-alert/evolution-offline-alert.c.labels-gsettings-busy-loop evolution-3.8.5/modules/offline-alert/evolution-offline-alert.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/offline-alert/evolution-offline-alert.c.labels-gsettings-busy-loop 2013-07-23 14:51:49.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/offline-alert/evolution-offline-alert.c 2014-06-05 12:50:44.153250423 +0200
|
|
|
b1a0e4 |
@@ -115,11 +115,11 @@ offline_alert_window_added_cb (GtkApplic
|
|
|
b1a0e4 |
/* Connect these signals after we have the first EShellWindow
|
|
|
b1a0e4 |
* to avoid false-positive signals during EShell initialization. */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell, "notify::online",
|
|
|
b1a0e4 |
G_CALLBACK (offline_alert_online_cb), extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell, "notify::network-available",
|
|
|
b1a0e4 |
G_CALLBACK (offline_alert_network_available_cb), extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/settings/e-settings-mail-formatter.c.labels-gsettings-busy-loop evolution-3.8.5/modules/settings/e-settings-mail-formatter.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/settings/e-settings-mail-formatter.c.labels-gsettings-busy-loop 2014-06-05 12:52:48.403341562 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/settings/e-settings-mail-formatter.c 2014-06-05 12:53:23.109085002 +0200
|
|
|
b1a0e4 |
@@ -33,6 +33,7 @@
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
struct _ESettingsMailFormatterPrivate {
|
|
|
b1a0e4 |
GSettings *settings;
|
|
|
b1a0e4 |
+ GSList *old_headers;
|
|
|
b1a0e4 |
gulong headers_changed_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -63,12 +64,31 @@ settings_mail_formatter_headers_changed_
|
|
|
b1a0e4 |
formatter = settings_mail_formatter_get_extensible (extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
headers = g_settings_get_strv (settings, "headers");
|
|
|
b1a0e4 |
+ if (key) {
|
|
|
b1a0e4 |
+ GSList *link;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ for (ii = 0, link = extension->priv->old_headers; headers && headers[ii]; ii++, link = g_slist_next (link)) {
|
|
|
b1a0e4 |
+ if (g_strcmp0 (link->data, headers[ii]) != 0)
|
|
|
b1a0e4 |
+ break;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ /* both lists are read to the end, thus they are the same */
|
|
|
b1a0e4 |
+ if (!headers[ii] && !link) {
|
|
|
b1a0e4 |
+ g_strfreev (headers);
|
|
|
b1a0e4 |
+ return;
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+ }
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ g_slist_free_full (extension->priv->old_headers, g_free);
|
|
|
b1a0e4 |
+ extension->priv->old_headers = NULL;
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
e_mail_formatter_clear_headers (formatter);
|
|
|
b1a0e4 |
for (ii = 0; headers && headers[ii]; ii++) {
|
|
|
b1a0e4 |
EMailReaderHeader *h;
|
|
|
b1a0e4 |
const gchar *xml = headers[ii];
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ extension->priv->old_headers = g_slist_prepend (extension->priv->old_headers, g_strdup (xml));
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
h = e_mail_reader_header_from_xml (xml);
|
|
|
b1a0e4 |
if (h && h->enabled)
|
|
|
b1a0e4 |
e_mail_formatter_add_header (
|
|
|
b1a0e4 |
@@ -78,6 +98,8 @@ settings_mail_formatter_headers_changed_
|
|
|
b1a0e4 |
e_mail_reader_header_free (h);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ extension->priv->old_headers = g_slist_reverse (extension->priv->old_headers);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
if (!headers || !headers[0])
|
|
|
b1a0e4 |
e_mail_formatter_set_default_headers (formatter);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -99,6 +121,9 @@ settings_mail_formatter_dispose (GObject
|
|
|
b1a0e4 |
priv->settings = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+ g_slist_free_full (priv->old_headers, g_free);
|
|
|
b1a0e4 |
+ priv->old_headers = NULL;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
/* Chain up to parent's dispose() method. */
|
|
|
b1a0e4 |
G_OBJECT_CLASS (e_settings_mail_formatter_parent_class)->
|
|
|
b1a0e4 |
dispose (object);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/settings/e-settings-web-view-gtkhtml.c.labels-gsettings-busy-loop evolution-3.8.5/modules/settings/e-settings-web-view-gtkhtml.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/settings/e-settings-web-view-gtkhtml.c.labels-gsettings-busy-loop 2013-07-23 14:51:40.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/settings/e-settings-web-view-gtkhtml.c 2014-06-05 12:50:44.153250423 +0200
|
|
|
b1a0e4 |
@@ -34,6 +34,13 @@
|
|
|
b1a0e4 |
struct _ESettingsWebViewGtkHTMLPrivate {
|
|
|
b1a0e4 |
GtkCssProvider *css_provider;
|
|
|
b1a0e4 |
EShellSettings *shell_settings;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ gulong notify_mail_use_custom_fonts_id;
|
|
|
b1a0e4 |
+ gulong notify_mail_font_monospace_id;
|
|
|
b1a0e4 |
+ gulong notify_mail_font_variable_id;
|
|
|
b1a0e4 |
+ gulong notify_mail_mark_citations_id;
|
|
|
b1a0e4 |
+ gulong notify_mail_citation_color_id;
|
|
|
b1a0e4 |
+ gulong notify_composer_spell_color_id;
|
|
|
b1a0e4 |
};
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
G_DEFINE_DYNAMIC_TYPE (
|
|
|
b1a0e4 |
@@ -181,32 +188,32 @@ settings_web_view_gtkhtml_realize (GtkWi
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Reload the style sheet when certain settings change. */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_mail_use_custom_fonts_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::mail-use-custom-fonts",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_mail_font_monospace_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::mail-font-monospace",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_mail_font_variable_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::mail-font-variable",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_mail_mark_citations_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::mail-mark-citations",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_mail_citation_color_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::mail-citation-color",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ extension->priv->notify_composer_spell_color_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_settings, "notify::composer-spell-color",
|
|
|
b1a0e4 |
G_CALLBACK (settings_web_view_gtkhtml_load_style),
|
|
|
b1a0e4 |
extension);
|
|
|
b1a0e4 |
@@ -225,9 +232,13 @@ settings_web_view_gtkhtml_dispose (GObje
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (priv->shell_settings != NULL) {
|
|
|
b1a0e4 |
- g_signal_handlers_disconnect_by_func (
|
|
|
b1a0e4 |
- priv->shell_settings,
|
|
|
b1a0e4 |
- settings_web_view_gtkhtml_load_style, object);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_mail_use_custom_fonts_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_mail_font_monospace_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_mail_font_variable_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_mail_mark_citations_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_mail_citation_color_id);
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (priv->shell_settings, &priv->notify_composer_spell_color_id);
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
g_object_unref (priv->shell_settings);
|
|
|
b1a0e4 |
priv->shell_settings = NULL;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/modules/startup-wizard/e-mail-config-import-progress-page.c.labels-gsettings-busy-loop evolution-3.8.5/modules/startup-wizard/e-mail-config-import-progress-page.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/modules/startup-wizard/e-mail-config-import-progress-page.c.labels-gsettings-busy-loop 2013-07-23 14:51:49.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/modules/startup-wizard/e-mail-config-import-progress-page.c 2014-06-05 12:50:44.153250423 +0200
|
|
|
b1a0e4 |
@@ -183,7 +183,7 @@ mail_config_import_progress_page_constru
|
|
|
b1a0e4 |
activity = e_mail_config_import_progress_page_get_activity (page);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* The activity state affects the "check-complete" result. */
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
activity, "notify::state",
|
|
|
b1a0e4 |
G_CALLBACK (e_mail_config_page_changed), page);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/plugins/mail-to-task/mail-to-task.c.labels-gsettings-busy-loop evolution-3.8.5/plugins/mail-to-task/mail-to-task.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/plugins/mail-to-task/mail-to-task.c.labels-gsettings-busy-loop 2013-07-23 14:51:37.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/plugins/mail-to-task/mail-to-task.c 2014-06-05 12:50:44.153250423 +0200
|
|
|
b1a0e4 |
@@ -795,7 +795,7 @@ do_manage_comp_idle (struct _manage_comp
|
|
|
b1a0e4 |
/* Force editor's title change */
|
|
|
b1a0e4 |
comp_editor_title_changed (GTK_WIDGET (editor), NULL, mc);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
editor, "notify::title",
|
|
|
b1a0e4 |
G_CALLBACK (comp_editor_title_changed), mc);
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/plugins/publish-calendar/publish-calendar.c.labels-gsettings-busy-loop evolution-3.8.5/plugins/publish-calendar/publish-calendar.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/plugins/publish-calendar/publish-calendar.c.labels-gsettings-busy-loop 2013-07-23 14:51:37.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/plugins/publish-calendar/publish-calendar.c 2014-06-05 12:50:44.154250416 +0200
|
|
|
b1a0e4 |
@@ -988,10 +988,12 @@ e_plugin_lib_enable (EPlugin *ep,
|
|
|
b1a0e4 |
EShell *shell = e_shell_get_default ();
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (shell) {
|
|
|
b1a0e4 |
- g_signal_handlers_disconnect_by_func (shell, G_CALLBACK (online_state_changed), NULL);
|
|
|
b1a0e4 |
+ static gulong notify_online_id = 0;
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
+ e_signal_disconnect_notify_handler (shell, ¬ify_online_id);
|
|
|
b1a0e4 |
if (enable) {
|
|
|
b1a0e4 |
online = e_shell_get_online (shell);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ notify_online_id = e_signal_connect_notify (
|
|
|
b1a0e4 |
shell, "notify::online",
|
|
|
b1a0e4 |
G_CALLBACK (online_state_changed), NULL);
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/shell/e-shell.c.labels-gsettings-busy-loop evolution-3.8.5/shell/e-shell.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/shell/e-shell.c.labels-gsettings-busy-loop 2013-07-23 14:52:24.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/shell/e-shell.c 2014-06-05 12:50:44.154250416 +0200
|
|
|
b1a0e4 |
@@ -1268,7 +1268,7 @@ e_shell_init (EShell *shell)
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
shell_parse_debug_string (shell);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell, "notify::online",
|
|
|
b1a0e4 |
G_CALLBACK (shell_notify_online_cb), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/shell/e-shell-switcher.c.labels-gsettings-busy-loop evolution-3.8.5/shell/e-shell-switcher.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/shell/e-shell-switcher.c.labels-gsettings-busy-loop 2013-07-23 14:52:25.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/shell/e-shell-switcher.c 2014-06-05 12:50:44.154250416 +0200
|
|
|
b1a0e4 |
@@ -34,6 +34,8 @@
|
|
|
b1a0e4 |
#include <glib/gi18n.h>
|
|
|
b1a0e4 |
#include <libebackend/libebackend.h>
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
+#include <e-util/e-util.h>
|
|
|
b1a0e4 |
+
|
|
|
b1a0e4 |
#define E_SHELL_SWITCHER_GET_PRIVATE(obj) \
|
|
|
b1a0e4 |
(G_TYPE_INSTANCE_GET_PRIVATE \
|
|
|
b1a0e4 |
((obj), E_TYPE_SHELL_SWITCHER, EShellSwitcherPrivate))
|
|
|
b1a0e4 |
@@ -377,7 +379,7 @@ shell_switcher_screen_changed (GtkWidget
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
if (settings != NULL) {
|
|
|
b1a0e4 |
priv->settings = g_object_ref (settings);
|
|
|
b1a0e4 |
- priv->settings_handler_id = g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ priv->settings_handler_id = e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
settings, "notify::gtk-toolbar-style",
|
|
|
b1a0e4 |
G_CALLBACK (shell_switcher_toolbar_style_changed_cb),
|
|
|
b1a0e4 |
widget);
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/shell/e-shell-window.c.labels-gsettings-busy-loop evolution-3.8.5/shell/e-shell-window.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/shell/e-shell-window.c.labels-gsettings-busy-loop 2013-08-10 23:38:43.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/shell/e-shell-window.c 2014-06-05 12:50:44.154250416 +0200
|
|
|
b1a0e4 |
@@ -431,7 +431,7 @@ shell_window_construct_menubar (EShellWi
|
|
|
b1a0e4 |
main_menu = child;
|
|
|
b1a0e4 |
}
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (shell_window_menubar_update_new_menu), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -568,7 +568,7 @@ shell_window_construct_sidebar (EShellWi
|
|
|
b1a0e4 |
shell_window->priv->sidebar_notebook = g_object_ref (notebook);
|
|
|
b1a0e4 |
gtk_widget_show (notebook);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (shell_window_set_notebook_page), notebook);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -596,7 +596,7 @@ shell_window_construct_content (EShellWi
|
|
|
b1a0e4 |
shell_window->priv->content_notebook = g_object_ref (widget);
|
|
|
b1a0e4 |
gtk_widget_show (widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (shell_window_set_notebook_page), widget);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -661,7 +661,7 @@ shell_window_construct_taskbar (EShellWi
|
|
|
b1a0e4 |
shell_window->priv->status_notebook = g_object_ref (notebook);
|
|
|
b1a0e4 |
gtk_widget_show (notebook);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (shell_window_set_notebook_page), notebook);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
@@ -743,15 +743,15 @@ shell_window_create_shell_view (EShellWi
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Listen for changes that affect the shell window. */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
action, "notify::icon-name",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_icon), shell_window);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_view, "notify::title",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_title), shell_window);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect_swapped (
|
|
|
b1a0e4 |
+ e_signal_connect_notify_swapped (
|
|
|
b1a0e4 |
shell_view, "notify::view-id",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_view_menu), shell_window);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/shell/e-shell-window-private.c.labels-gsettings-busy-loop evolution-3.8.5/shell/e-shell-window-private.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/shell/e-shell-window-private.c.labels-gsettings-busy-loop 2013-07-23 14:52:25.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/shell/e-shell-window-private.c 2014-06-05 12:50:44.154250416 +0200
|
|
|
b1a0e4 |
@@ -329,19 +329,19 @@ e_shell_window_private_constructed (EShe
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
/* Bunch of chores to do when the active view changes. */
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_icon), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_title), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_view_menu), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
shell_window, "notify::active-view",
|
|
|
b1a0e4 |
G_CALLBACK (e_shell_window_update_search_menu), NULL);
|
|
|
b1a0e4 |
|
|
|
b1a0e4 |
diff -up evolution-3.8.5/smime/gui/certificate-manager.c.labels-gsettings-busy-loop evolution-3.8.5/smime/gui/certificate-manager.c
|
|
|
b1a0e4 |
--- evolution-3.8.5/smime/gui/certificate-manager.c.labels-gsettings-busy-loop 2013-07-23 14:52:23.000000000 +0200
|
|
|
b1a0e4 |
+++ evolution-3.8.5/smime/gui/certificate-manager.c 2014-06-05 12:50:44.155250410 +0200
|
|
|
b1a0e4 |
@@ -440,7 +440,7 @@ treeview_add_column (CertPage *cp,
|
|
|
b1a0e4 |
g_signal_connect (
|
|
|
b1a0e4 |
item, "toggled",
|
|
|
b1a0e4 |
G_CALLBACK (header_popup_item_toggled), column);
|
|
|
b1a0e4 |
- g_signal_connect (
|
|
|
b1a0e4 |
+ e_signal_connect_notify (
|
|
|
b1a0e4 |
column, "notify::visible",
|
|
|
b1a0e4 |
G_CALLBACK (treeview_column_visibility_changed), item);
|
|
|
b1a0e4 |
}
|