diff -Nru gnome-calendar-3.32.0/data/appdata/org.gnome.Calendar.appdata.xml.in gnome-calendar-3.32.2/data/appdata/org.gnome.Calendar.appdata.xml.in --- gnome-calendar-3.32.0/data/appdata/org.gnome.Calendar.appdata.xml.in 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/data/appdata/org.gnome.Calendar.appdata.xml.in 2020-02-20 12:50:09.000000000 +0000 @@ -49,7 +49,7 @@ GNOME - +

GNOME Calendar 3.32.0 release is here!

Thanks to all the contributors that worked on GNOME Calendar!

diff -Nru gnome-calendar-3.32.0/data/ui/menus.ui gnome-calendar-3.32.2/data/ui/menus.ui --- gnome-calendar-3.32.0/data/ui/menus.ui 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/data/ui/menus.ui 2020-02-20 12:50:09.000000000 +0000 @@ -1,5 +1,28 @@ + +
+ + _Calendars + win.show-calendars + +
+
+ + _Keyboard Shortcuts + win.show-help-overlay + + + _About + app.about + + + _Quit + app.quit + <Primary>q + +
+
diff -Nru gnome-calendar-3.32.0/data/ui/window.ui gnome-calendar-3.32.2/data/ui/window.ui --- gnome-calendar-3.32.0/data/ui/window.ui 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/data/ui/window.ui 2020-02-20 12:50:09.000000000 +0000 @@ -377,6 +377,13 @@ True 12 vertical + + + Add Eve_nt + app.new + True + + diff -Nru gnome-calendar-3.32.0/debian/changelog gnome-calendar-3.32.2/debian/changelog --- gnome-calendar-3.32.0/debian/changelog 2019-03-12 00:24:29.000000000 +0000 +++ gnome-calendar-3.32.2/debian/changelog 2020-02-20 12:50:09.000000000 +0000 @@ -1,3 +1,22 @@ +gnome-calendar (3.32.2-1~ubuntu19.04.1+202002201250~ubuntu19.04.1) disco; urgency=low + + * Auto build. + + -- Khurshid Alam Thu, 20 Feb 2020 12:50:09 +0000 + +gnome-calendar (3.32.2-1~ubuntu19.04.1) disco; urgency=medium + + * No-change backport from experimental / eoan to disco. + + -- Iain Lane Fri, 10 May 2019 17:04:55 +0100 + +gnome-calendar (3.32.2-1) experimental; urgency=medium + + * New upstream release + + Fix timezone handling of all day events (LP: #1826400) + + -- Iain Lane Fri, 10 May 2019 16:53:10 +0100 + gnome-calendar (3.32.0-1) experimental; urgency=medium * New upstream release diff -Nru gnome-calendar-3.32.0/debian/control gnome-calendar-3.32.2/debian/control --- gnome-calendar-3.32.0/debian/control 2019-03-12 00:24:29.000000000 +0000 +++ gnome-calendar-3.32.2/debian/control 2020-02-20 12:50:09.000000000 +0000 @@ -6,7 +6,7 @@ Section: gnome Priority: optional Maintainer: Debian GNOME Maintainers -Uploaders: Jeremy Bicha , Tim Lunn +Uploaders: Iain Lane , Jeremy Bicha , Tim Lunn Build-Depends: appstream-util, debhelper-compat (= 12), evolution-data-server , diff -Nru gnome-calendar-3.32.0/debian/git-build-recipe.manifest gnome-calendar-3.32.2/debian/git-build-recipe.manifest --- gnome-calendar-3.32.0/debian/git-build-recipe.manifest 1970-01-01 00:00:00.000000000 +0000 +++ gnome-calendar-3.32.2/debian/git-build-recipe.manifest 2020-02-20 12:50:09.000000000 +0000 @@ -0,0 +1,2 @@ +# git-build-recipe format 0.4 deb-version {debversion}+202002201250 +lp:~khurshid-alam/gnome-calendar/+git/3.32 git-commit:bf3e974f971743d01329df1a55db5de37a09267d diff -Nru gnome-calendar-3.32.0/debian/source/format gnome-calendar-3.32.2/debian/source/format --- gnome-calendar-3.32.0/debian/source/format 2019-03-12 00:24:29.000000000 +0000 +++ gnome-calendar-3.32.2/debian/source/format 2020-02-20 12:50:09.000000000 +0000 @@ -1 +1 @@ -3.0 (quilt) +3.0 (native) diff -Nru gnome-calendar-3.32.0/meson.build gnome-calendar-3.32.2/meson.build --- gnome-calendar-3.32.0/meson.build 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/meson.build 2020-02-20 12:50:09.000000000 +0000 @@ -1,7 +1,7 @@ project( 'gnome-calendar', 'c', - version: '3.32.0', + version: '3.32.2', license: 'GPL3+', meson_version: '>= 0.42.0' ) diff -Nru gnome-calendar-3.32.0/NEWS gnome-calendar-3.32.2/NEWS --- gnome-calendar-3.32.0/NEWS 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/NEWS 2020-02-20 12:50:09.000000000 +0000 @@ -1,3 +1,10 @@ +Major changes in 3.32.2: +* Fix timezone handling of all day events (Florian Latifi) + +Major changes in 3.32.1: +* Fix release date field in AppData +* Updated translations + Major changes in 3.32.0: * Updated translations diff -Nru gnome-calendar-3.32.0/.pc/.quilt_patches gnome-calendar-3.32.2/.pc/.quilt_patches --- gnome-calendar-3.32.0/.pc/.quilt_patches 1970-01-01 00:00:00.000000000 +0000 +++ gnome-calendar-3.32.2/.pc/.quilt_patches 2020-02-20 12:50:09.000000000 +0000 @@ -0,0 +1 @@ +debian/patches diff -Nru gnome-calendar-3.32.0/.pc/.quilt_series gnome-calendar-3.32.2/.pc/.quilt_series --- gnome-calendar-3.32.0/.pc/.quilt_series 1970-01-01 00:00:00.000000000 +0000 +++ gnome-calendar-3.32.2/.pc/.quilt_series 2020-02-20 12:50:09.000000000 +0000 @@ -0,0 +1 @@ +series diff -Nru gnome-calendar-3.32.0/.pc/.version gnome-calendar-3.32.2/.pc/.version --- gnome-calendar-3.32.0/.pc/.version 1970-01-01 00:00:00.000000000 +0000 +++ gnome-calendar-3.32.2/.pc/.version 2020-02-20 12:50:09.000000000 +0000 @@ -0,0 +1 @@ +2 diff -Nru gnome-calendar-3.32.0/po/da.po gnome-calendar-3.32.2/po/da.po --- gnome-calendar-3.32.0/po/da.po 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/po/da.po 2020-02-20 12:50:09.000000000 +0000 @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: gnome-calendar master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n" -"POT-Creation-Date: 2018-11-06 13:46+0000\n" +"POT-Creation-Date: 2019-03-24 07:06+0000\n" "PO-Revision-Date: 2019-02-11 19:39+0100\n" "Last-Translator: Alan Mortensen \n" "Language-Team: Danish \n" @@ -39,14 +39,15 @@ "desktop is built on, Calendar nicely integrates with the GNOME ecosystem." msgstr "" "GNOME Kalender er et simpelt og smukt kalenderprogram designet til at passe " -"nøjagtigt til GNOME-skrivebordet. Ved at genbruge komponenterne, som GNOME-" -"skrivebordet er bygget med, er Kalender pænt integreret i GNOME-økosystemet." +"nøjagtigt til GNOME-skrivebordet. Ved at genbruge komponenterne, som " +"GNOME-skrivebordet er bygget med, er Kalender pænt integreret i " +"GNOME-økosystemet." #: data/appdata/org.gnome.Calendar.appdata.xml.in:16 msgid "" -"We aim to find the perfect balance between nicely crafted features and user-" -"centred usability. No excess, nothing missing. You’ll feel comfortable using " -"Calendar, like you’ve been using it for ages!" +"We aim to find the perfect balance between nicely crafted features and " +"user-centred usability. No excess, nothing missing. You’ll feel comfortable " +"using Calendar, like you’ve been using it for ages!" msgstr "" "Vi forsøger at finde den perfekte balance mellem fint udarbejdede funktioner " "og brugervenlighed. Ingen overflod, ingen mangler. Du vil kunne bruge " @@ -68,11 +69,6 @@ msgid "Access and manage your calendars" msgstr "Tilgå og håndtér dine kalendere" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Calendar.desktop.in:7 -msgid "org.gnome.Calendar" -msgstr "org.gnome.Calendar" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Calendar.desktop.in:13 msgid "Calendar;Event;Reminder;" @@ -108,7 +104,8 @@ #: data/org.gnome.calendar.gschema.xml.in:22 msgid "Type of the active window view, default value is: monthly view" -msgstr "Typen for den aktive vinduesvisning, standardværdien er: månedsvisning" +msgstr "" +"Typen for den aktive vinduesvisning, standardværdien er: månedsvisning" #: data/org.gnome.calendar.gschema.xml.in:26 msgid "Weather Service Configuration" @@ -444,12 +441,12 @@ #: data/ui/source-dialog.ui:631 msgid "" "Enter the address of the calendar that you want to add. If the calendar " -"belongs to one of your online accounts, you can add it through the online account settings." +"belongs to one of your online accounts, you can add it through the online account settings." msgstr "" "Indtast adressen for den kalender som du vil tilføje. Hvis kalenderen " -"tilhører en af dine onlinekonti, kan du tilføje den gennem indstillinger for onlinekonti." +"tilhører en af dine onlinekonti, kan du tilføje den gennem indstillinger for onlinekonti." #: data/ui/source-dialog.ui:646 msgid "Calendar Address" @@ -590,8 +587,9 @@ "scootergrisen\n" "Alan Mortensen\n" "\n" -"Dansk-gruppen \n" -"Mere info: http://www.dansk-gruppen.dk" +"Dansk-gruppen\n" +"Websted http://dansk-gruppen.dk\n" +"E-mail " #: src/gcal-edit-dialog.c:372 msgid "Save" @@ -1049,6 +1047,9 @@ msgid "%B %d" msgstr "%d. %B" +#~ msgid "org.gnome.Calendar" +#~ msgstr "org.gnome.Calendar" + #~ msgid "_Calendars" #~ msgstr "_Kalendere" @@ -1088,13 +1089,13 @@ #~ msgid "week %d / %d" #~ msgstr "uge %d / %d" -# %s: dag og måned +#~ # %s: dag og måned #~ msgid "New Event from %s to %s" #~ msgstr "Ny begivenhed fra den %s til den %s" -# %s(1): dag og måned -# %s(2): starttidspunkt -# %2(3): sluttidspunkt +#~ # %s(1): dag og måned +#~ # %s(2): starttidspunkt +#~ # %2(3): sluttidspunkt #~ msgid "New Event on %s, %s – %s" #~ msgstr "Ny begivenhed den %s, %s – %s" @@ -1119,11 +1120,11 @@ #~ msgid "%m/%d/%y" #~ msgstr "%d/%m/%y" -# Det er nok en fejl at de ikke bruger strftime. Regionsindstillingerne bør forhindre at der kommer 12-timers-klokkeslæt ud til brugeren +#~ # Det er nok en fejl at de ikke bruger strftime. Regionsindstillingerne bør forhindre at der kommer 12-timers-klokkeslæt ud til brugeren #~ msgid "%.2d:%.2d AM" #~ msgstr "%.2d:%.2d AM" -# Det er nok en fejl at de ikke bruger strftime +#~ # Det er nok en fejl at de ikke bruger strftime #~ msgid "%.2d:%.2d PM" #~ msgstr "%.2d:%.2d PM" @@ -1171,3 +1172,4 @@ #~ msgid "Year %d" #~ msgstr "År %d" + diff -Nru gnome-calendar-3.32.0/po/hr.po gnome-calendar-3.32.2/po/hr.po --- gnome-calendar-3.32.0/po/hr.po 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/po/hr.po 2020-02-20 12:50:09.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: gnome-calendar\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-calendar/issues\n" -"POT-Creation-Date: 2018-07-29 04:02+0000\n" -"PO-Revision-Date: 2018-09-02 14:56+0200\n" +"POT-Creation-Date: 2019-03-24 07:06+0000\n" +"PO-Revision-Date: 2019-03-25 20:01+0100\n" "Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -18,11 +18,11 @@ "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Launchpad-Export-Date: 2016-09-22 19:52+0000\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.0.6\n" #: data/appdata/org.gnome.Calendar.appdata.xml.in:7 #: data/org.gnome.Calendar.desktop.in:3 data/ui/quick-add-popover.ui:187 -#: data/ui/window.ui:187 src/gcal-application.c:646 src/main.c:36 +#: data/ui/window.ui:187 src/gcal-application.c:648 src/main.c:36 msgid "Calendar" msgstr "Kalendar" @@ -66,11 +66,6 @@ msgid "Access and manage your calendars" msgstr "Pristupite i upravljajte svojim kalendarom" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.Calendar.desktop.in:7 -msgid "org.gnome.Calendar" -msgstr "org.gnome.Calendar" - #. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! #: data/org.gnome.Calendar.desktop.in:13 msgid "Calendar;Event;Reminder;" @@ -146,7 +141,7 @@ msgid "Click to select the calendar" msgstr "Klikni za odabir kalendara" -#: data/ui/edit-dialog.ui:108 src/gcal-edit-dialog.c:277 +#: data/ui/edit-dialog.ui:108 src/gcal-edit-dialog.c:372 msgid "Done" msgstr "Završeno" @@ -339,30 +334,14 @@ msgstr "Godišnji prikaz" #: data/ui/menus.ui:6 -msgid "_Calendars" -msgstr "_Kalendari" - -#: data/ui/menus.ui:12 -msgid "_Keyboard Shortcuts" -msgstr "_Prečaci tipkovnice" - -#: data/ui/menus.ui:16 -msgid "_About" -msgstr "_O programu" - -#: data/ui/menus.ui:20 -msgid "_Quit" -msgstr "_Zatvori" - -#: data/ui/menus.ui:29 msgid "From Web…" msgstr "Sa interneta…" -#: data/ui/menus.ui:33 +#: data/ui/menus.ui:10 msgid "New Local Calendar…" msgstr "Novi lokalni kalendar…" -#: data/ui/menus.ui:37 +#: data/ui/menus.ui:14 msgid "From File…" msgstr "Iz datoteke…" @@ -470,13 +449,13 @@ msgid "Calendar Address" msgstr "Adresa kalendara" -#: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2285 -#: src/gcal-source-dialog.c:2291 +#: data/ui/source-dialog.ui:729 src/gcal-source-dialog.c:2286 +#: src/gcal-source-dialog.c:2292 msgid "Add Calendar" msgstr "Dodaj kalendar" #: data/ui/source-dialog.ui:745 data/ui/window.ui:344 -#: src/gcal-source-dialog.c:862 src/gcal-source-dialog.c:2314 +#: src/gcal-source-dialog.c:862 src/gcal-source-dialog.c:2315 msgid "Calendar Settings" msgstr "Postavke kalendara" @@ -555,6 +534,14 @@ msgid "_Synchronize" msgstr "_Uskladi" +#: data/ui/window.ui:410 +msgid "_Keyboard Shortcuts" +msgstr "_Prečaci tipkovnice" + +#: data/ui/window.ui:419 +msgid "_About Calendar" +msgstr "_O Kalendaru" + #: data/ui/year-view.ui:133 msgid "No events" msgstr "Nema događaja" @@ -583,22 +570,22 @@ msgid "Open calendar showing the passed event" msgstr "Otvori prikaz prošlih događja u kalendaru" -#: src/gcal-application.c:601 +#: src/gcal-application.c:603 #, c-format msgid "Copyright © 2012–%d The Calendar authors" msgstr "Autorsko pravo © 2012–%d Autori Kalendara" -#: src/gcal-application.c:652 +#: src/gcal-application.c:654 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" -#: src/gcal-edit-dialog.c:277 +#: src/gcal-edit-dialog.c:372 msgid "Save" msgstr "Spremi" -#: src/gcal-edit-dialog.c:1037 +#: src/gcal-edit-dialog.c:539 #, c-format msgid "%d minute before" msgid_plural "%d minutes before" @@ -606,7 +593,7 @@ msgstr[1] "Prije %d minute" msgstr[2] "Prije %d minuta" -#: src/gcal-edit-dialog.c:1045 +#: src/gcal-edit-dialog.c:547 #, c-format msgid "%d hour before" msgid_plural "%d hours before" @@ -614,7 +601,7 @@ msgstr[1] "Prije %d sata" msgstr[2] "Prije %d sati" -#: src/gcal-edit-dialog.c:1053 +#: src/gcal-edit-dialog.c:555 #, c-format msgid "%d day before" msgid_plural "%d days before" @@ -622,7 +609,7 @@ msgstr[1] "Prije %d dana" msgstr[2] "Prije %d dana" -#: src/gcal-edit-dialog.c:1061 +#: src/gcal-edit-dialog.c:563 #, c-format msgid "%d week before" msgid_plural "%d weeks before" @@ -630,7 +617,7 @@ msgstr[1] "Prije %d tjedna" msgstr[2] "Prije %d tjedana" -#: src/gcal-edit-dialog.c:1367 src/gcal-quick-add-popover.c:682 +#: src/gcal-edit-dialog.c:1505 src/gcal-quick-add-popover.c:682 msgid "Unnamed event" msgstr "Neimenovani događaj" @@ -940,20 +927,20 @@ msgstr "Bezimeni kalendar" #. Update notification label -#: src/gcal-source-dialog.c:1810 +#: src/gcal-source-dialog.c:1811 #, c-format msgid "Calendar %s removed" msgstr "Kalendar %s uklonjen" -#: src/gcal-source-dialog.c:1859 src/gcal-source-dialog.c:1915 +#: src/gcal-source-dialog.c:1860 src/gcal-source-dialog.c:1916 msgid "Off" msgstr "Isključen" -#: src/gcal-source-dialog.c:1859 src/gcal-source-dialog.c:1915 +#: src/gcal-source-dialog.c:1860 src/gcal-source-dialog.c:1916 msgid "On" msgstr "Uključen" -#: src/gcal-source-dialog.c:1914 +#: src/gcal-source-dialog.c:1915 msgid "Expired" msgstr "Istekao" @@ -1030,6 +1017,18 @@ msgid "%B %d" msgstr "%d %B" +#~ msgid "org.gnome.Calendar" +#~ msgstr "org.gnome.Calendar" + +#~ msgid "_Calendars" +#~ msgstr "_Kalendari" + +#~ msgid "_About" +#~ msgstr "_O programu" + +#~ msgid "_Quit" +#~ msgstr "_Zatvori" + #~ msgid "Add Eve_nt…" #~ msgstr "Dodaj doga_đaj…" diff -Nru gnome-calendar-3.32.0/src/gcal-edit-dialog.c gnome-calendar-3.32.2/src/gcal-edit-dialog.c --- gnome-calendar-3.32.0/src/gcal-edit-dialog.c 2019-03-11 15:45:52.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-edit-dialog.c 2020-02-20 12:50:09.000000000 +0000 @@ -316,7 +316,10 @@ all_day ? 0 : g_date_time_get_minute (time), 0); - date_in_best_tz = g_date_time_to_timezone (date_in_local_tz, timezone); + if (all_day) + date_in_best_tz = g_date_time_ref (date_in_local_tz); + else + date_in_best_tz = g_date_time_to_timezone (date_in_local_tz, timezone); retval = g_date_time_new (timezone, g_date_time_get_year (date_in_best_tz), diff -Nru gnome-calendar-3.32.0/src/gcal-event.c gnome-calendar-3.32.2/src/gcal-event.c --- gnome-calendar-3.32.0/src/gcal-event.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-event.c 2020-02-20 12:50:09.000000000 +0000 @@ -259,13 +259,19 @@ { ECalComponentId *id; const gchar *source_id; + gboolean should_update_cache = FALSE; /* Setup event uid */ source_id = self->source ? e_source_get_uid (self->source) : ""; id = e_cal_component_get_id (self->component); - /* Clear the previous uid */ - g_clear_pointer (&self->uid, g_free); + if (self->uid != NULL) + { + should_update_cache = TRUE; + g_debug ("Removing '%s' (%p) from cache", self->uid, self); + g_hash_table_remove (event_cache, self->uid); + g_free (self->uid); + } if (id->rid != NULL) { @@ -281,6 +287,12 @@ id->uid); } + if (should_update_cache) + { + g_debug ("Adding %s to the cache", self->uid); + g_hash_table_insert (event_cache, self->uid, self); + } + e_cal_component_free_id (id); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_UID]); } diff -Nru gnome-calendar-3.32.0/src/gcal-manager.c gnome-calendar-3.32.2/src/gcal-manager.c --- gnome-calendar-3.32.0/src/gcal-manager.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-manager.c 2020-02-20 12:50:09.000000000 +0000 @@ -345,7 +345,7 @@ ESourceRefresh *refresh_extension; ESourceOffline *offline_extension; GcalManager *self; - ECalClient *client; + EClient *client; ESource *source; GError *error; gboolean enabled; @@ -353,8 +353,6 @@ GCAL_ENTRY; self = GCAL_MANAGER (user_data); - source = e_client_get_source (E_CLIENT (source_object)); - enabled = is_source_enabled (source); self->sources_at_launch--; @@ -362,28 +360,28 @@ g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_LOADING]); error = NULL; - client = E_CAL_CLIENT (e_cal_client_connect_finish (result, &error)); + client = e_cal_client_connect_finish (result, &error); if (error) { - remove_source (GCAL_MANAGER (user_data), source); - g_warning ("%s: Failed to open/connect '%s': %s", + g_warning ("%s: Failed to open/connect calendar: %s", G_STRFUNC, - e_source_get_display_name (source), error->message); - g_object_unref (source); g_error_free (error); return; } + source = e_client_get_source (client); + enabled = is_source_enabled (source); + g_object_set_data (G_OBJECT (source), "client", client); unit = g_new0 (GcalManagerUnit, 1); unit->connected = TRUE; - unit->client = g_object_ref (client); + unit->client = g_object_ref (E_CAL_CLIENT (client)); - g_hash_table_insert (self->clients, source, unit); + g_hash_table_insert (self->clients, g_object_ref (source), unit); g_debug ("Source %s (%s) connected", e_source_get_display_name (source), @@ -394,15 +392,17 @@ if (enabled) { - e_cal_data_model_add_client (self->e_data_model, client); - e_cal_data_model_add_client (self->search_data_model, client); + ECalClient *cal_client = E_CAL_CLIENT (client); + + e_cal_data_model_add_client (self->e_data_model, cal_client); + e_cal_data_model_add_client (self->search_data_model, cal_client); if (self->shell_search_data_model != NULL) - e_cal_data_model_add_client (self->shell_search_data_model, client); + e_cal_data_model_add_client (self->shell_search_data_model, cal_client); } /* refresh client when it's added */ - if (enabled && e_client_check_refresh_supported (E_CLIENT (client))) - e_client_refresh (E_CLIENT (client), NULL, on_client_refreshed, user_data); + if (enabled && e_client_check_refresh_supported (client)) + e_client_refresh (client, NULL, on_client_refreshed, user_data); /* Cache all the online calendars, so the user can see them offline */ offline_extension = e_source_get_extension (source, E_SOURCE_EXTENSION_OFFLINE); diff -Nru gnome-calendar-3.32.0/src/gcal-quick-add-popover.c gnome-calendar-3.32.2/src/gcal-quick-add-popover.c --- gnome-calendar-3.32.0/src/gcal-quick-add-popover.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-quick-add-popover.c 2020-02-20 12:50:09.000000000 +0000 @@ -778,11 +778,16 @@ break; case PROP_MANAGER: - if (g_set_object (&self->manager, g_value_get_object (value))) + if (self->manager != g_value_get_object (value)) { GcalManager *manager; GList *sources, *l; + if (self->manager != NULL) + g_signal_handlers_disconnect_by_data (self->manager, self); + + g_set_object (&self->manager, g_value_get_object (value)); + /* Add currently leaded sources */ manager = self->manager; sources = gcal_manager_get_sources_connected (manager); @@ -793,10 +798,10 @@ g_list_free (sources); /* Connect to the manager signals and keep the list updates */ - g_signal_connect (manager, "source-added", G_CALLBACK (on_source_added), self); - g_signal_connect (manager, "source-changed", G_CALLBACK (on_source_changed), self); - g_signal_connect (manager, "source-removed", G_CALLBACK (on_source_removed), self); - g_signal_connect_swapped (manager, "notify::default-calendar", G_CALLBACK (update_default_calendar_row), self); + g_signal_connect_object (manager, "source-added", G_CALLBACK (on_source_added), self, 0); + g_signal_connect_object (manager, "source-changed", G_CALLBACK (on_source_changed), self, 0); + g_signal_connect_object (manager, "source-removed", G_CALLBACK (on_source_removed), self, 0); + g_signal_connect_object (manager, "notify::default-calendar", G_CALLBACK (update_default_calendar_row), self, G_CONNECT_SWAPPED); g_object_notify (G_OBJECT (self), "manager"); } diff -Nru gnome-calendar-3.32.0/src/gcal-source-dialog.c gnome-calendar-3.32.2/src/gcal-source-dialog.c --- gnome-calendar-3.32.0/src/gcal-source-dialog.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-source-dialog.c 2020-02-20 12:50:09.000000000 +0000 @@ -620,11 +620,11 @@ top_label = GTK_WIDGET (gtk_builder_get_object (builder, "title")); gtk_label_set_label (GTK_LABEL (top_label), e_source_get_display_name (source)); g_object_bind_property (source, "display-name", top_label, "label", G_BINDING_DEFAULT | G_BINDING_SYNC_CREATE); - g_signal_connect (source, "notify::display-name", G_CALLBACK (invalidate_calendar_listbox_sort), - dialog->calendars_listbox); + g_signal_connect_object (source, "notify::display-name", G_CALLBACK (invalidate_calendar_listbox_sort), + dialog->calendars_listbox, 0); extension = E_SOURCE_SELECTABLE (e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR)); - g_signal_connect (extension, "notify::color", G_CALLBACK (source_color_changed), icon); + g_signal_connect_object (extension, "notify::color", G_CALLBACK (source_color_changed), icon, 0); /* parent source name label */ bottom_label = GTK_WIDGET (gtk_builder_get_object (builder, "subtitle")); @@ -2111,29 +2111,36 @@ switch (prop_id) { case PROP_MANAGER: - self->manager = g_value_dup_object (value); - - if (!gcal_manager_get_loading (self->manager)) + if (self->manager != g_value_get_object (value)) { - GList *sources, *l; + if (self->manager != NULL) + g_signal_handlers_disconnect_by_data (self->manager, self); - sources = gcal_manager_get_sources_connected (self->manager); + g_set_object (&self->manager, g_value_get_object (value)); - for (l = sources; l != NULL; l = l->next) - add_source (self->manager, l->data, is_source_enabled (l->data), self); - } - else - { - g_signal_connect_swapped (self->manager, - "notify::loading", - G_CALLBACK (loading_changed_cb), - self); - } + if (!gcal_manager_get_loading (self->manager)) + { + GList *sources, *l; - g_signal_connect (self->manager, "source-added", G_CALLBACK (add_source), self); - g_signal_connect (self->manager, "source-removed", G_CALLBACK (remove_source), self); + sources = gcal_manager_get_sources_connected (self->manager); - g_object_notify_by_pspec (object, properties[PROP_MANAGER]); + for (l = sources; l != NULL; l = l->next) + add_source (self->manager, l->data, is_source_enabled (l->data), self); + } + else + { + g_signal_connect_object (self->manager, + "notify::loading", + G_CALLBACK (loading_changed_cb), + self, + G_CONNECT_SWAPPED); + } + + g_signal_connect_object (self->manager, "source-added", G_CALLBACK (add_source), self, 0); + g_signal_connect_object (self->manager, "source-removed", G_CALLBACK (remove_source), self, 0); + + g_object_notify_by_pspec (object, properties[PROP_MANAGER]); + } break; default: diff -Nru gnome-calendar-3.32.0/src/gcal-window.c gnome-calendar-3.32.2/src/gcal-window.c --- gnome-calendar-3.32.0/src/gcal-window.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/gcal-window.c 2020-02-20 12:50:09.000000000 +0000 @@ -1268,8 +1268,13 @@ break; case PROP_MANAGER: - if (g_set_object (&self->manager, g_value_get_object (value))) + if (self->manager != g_value_get_object (value)) { + if (self->manager != NULL) + g_signal_handlers_disconnect_by_data (self->manager, object); + + g_set_object (&self->manager, g_value_get_object (value)); + g_settings_bind (gcal_manager_get_settings (self->manager), "active-view", self, @@ -1288,10 +1293,10 @@ g_list_free (sources); } - g_signal_connect (self->manager, "source-added", G_CALLBACK (add_source), object); - g_signal_connect (self->manager, "source-removed", G_CALLBACK (remove_source), object); - g_signal_connect_swapped (self->manager, "source-enabled", G_CALLBACK (source_enabled), object); - g_signal_connect_swapped (self->manager, "source-changed", G_CALLBACK (source_changed), object); + g_signal_connect_object (self->manager, "source-added", G_CALLBACK (add_source), object, 0); + g_signal_connect_object (self->manager, "source-removed", G_CALLBACK (remove_source), object, 0); + g_signal_connect_object (self->manager, "source-enabled", G_CALLBACK (source_enabled), object, G_CONNECT_SWAPPED); + g_signal_connect_object (self->manager, "source-changed", G_CALLBACK (source_changed), object, G_CONNECT_SWAPPED); gcal_search_popover_connect (GCAL_SEARCH_POPOVER (self->search_popover), self->manager); diff -Nru gnome-calendar-3.32.0/src/views/gcal-year-view.c gnome-calendar-3.32.2/src/views/gcal-year-view.c --- gnome-calendar-3.32.0/src/views/gcal-year-view.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/views/gcal-year-view.c 2020-02-20 12:50:09.000000000 +0000 @@ -2118,7 +2118,11 @@ if (!updated) { gtk_label_set_text (self->temp_label, ""); - gtk_image_clear (self->weather_icon); + /* FIXME: This should never be NULL, but it somehow is. + * https://gitlab.gnome.org/GNOME/gnome-calendar/issues/299 + */ + if (self->weather_icon != NULL) + gtk_image_clear (self->weather_icon); } } diff -Nru gnome-calendar-3.32.0/src/weather/gcal-weather-service.c gnome-calendar-3.32.2/src/weather/gcal-weather-service.c --- gnome-calendar-3.32.0/src/weather/gcal-weather-service.c 2019-03-11 15:45:53.000000000 +0000 +++ gnome-calendar-3.32.2/src/weather/gcal-weather-service.c 2020-02-20 12:50:09.000000000 +0000 @@ -311,7 +311,8 @@ for (i = 0; i < G_N_ELEMENTS (icons); i++) { - if (icons[i].name[normalized_name_len] == '\0' && strncmp (icon_name, icons[i].name, normalized_name_len) == 0) + if (normalized_name_len == strlen (icons[i].name) && + strncmp (icon_name, icons[i].name, normalized_name_len) == 0) { *supports_night_icon = icons[i].night_support; return i;