[gnome-calendar/gbsneto/timeline: 10/36] calendar: Only notify visibility when it changes
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/gbsneto/timeline: 10/36] calendar: Only notify visibility when it changes
- Date: Thu, 2 Apr 2020 00:07:36 +0000 (UTC)
commit 90597ca128b9638cf22f0f70fbf21d1798355feb
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Tue Mar 24 12:55:12 2020 -0300
calendar: Only notify visibility when it changes
Otherwise we get weird double-notify issues from it.
src/core/gcal-calendar.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/src/core/gcal-calendar.c b/src/core/gcal-calendar.c
index 82917245..5e66eedb 100644
--- a/src/core/gcal-calendar.c
+++ b/src/core/gcal-calendar.c
@@ -31,6 +31,7 @@ typedef struct
ECalClient *client;
gboolean read_only;
+ gboolean visible;
gulong color_changed_handler_id;
gulong name_changed_handler_id;
@@ -132,6 +133,16 @@ on_source_visible_changed_cb (ESourceSelectable *source,
GParamSpec *pspec,
GcalCalendar *self)
{
+ GcalCalendarPrivate *priv;
+ gboolean visible;
+
+ priv = gcal_calendar_get_instance_private (self);
+ visible = e_source_selectable_get_selected (source);
+
+ if (visible == priv->visible)
+ return;
+
+ priv->visible = visible;
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_VISIBLE]);
}
@@ -169,6 +180,7 @@ gcal_calendar_initable_init (GInitable *initable,
}
selectable_extension = e_source_get_extension (priv->source, E_SOURCE_EXTENSION_CALENDAR);
+ priv->visible = e_source_selectable_get_selected (selectable_extension);
update_color (self);
priv->color_changed_handler_id = g_signal_connect (selectable_extension,
@@ -642,6 +654,9 @@ gcal_calendar_set_visible (GcalCalendar *self,
g_return_if_fail (GCAL_IS_CALENDAR (self));
+ if (priv->visible == visible)
+ return;
+
selectable_extension = e_source_get_extension (priv->source, E_SOURCE_EXTENSION_CALENDAR);
e_source_selectable_set_selected (selectable_extension, visible);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]