week-header: Simplify set_date()

This commit is contained in:
Georges Basile Stavracas Neto
2019-04-26 15:20:47 -03:00
parent c64849a29a
commit c88cf19e86
+8 -12
View File
@@ -1905,33 +1905,29 @@ void
gcal_week_header_set_date (GcalWeekHeader *self,
GDateTime *date)
{
GDateTime *old_date, *new_date;
old_date = self->active_date;
new_date = g_date_time_ref (date);
gboolean had_date;
/*
* If the active date changed, but we're still in the same week,
* there's no need to recalculate visible events.
*/
if (old_date && new_date &&
g_date_time_get_year (old_date) == g_date_time_get_year (new_date) &&
g_date_time_get_week_of_year (old_date) == g_date_time_get_week_of_year (new_date))
if (self->active_date && date &&
g_date_time_get_year (self->active_date) == g_date_time_get_year (date) &&
g_date_time_get_week_of_year (self->active_date) == g_date_time_get_week_of_year (date))
{
g_date_time_unref (new_date);
return;
}
self->active_date = new_date;
had_date = self->active_date != NULL;
gcal_set_date_time (&self->active_date, date);
update_title (self);
gtk_widget_queue_draw (GTK_WIDGET (self));
if (old_date)
if (had_date)
update_unchanged_events (self, self->active_date);
update_weather_infos (self);
gcal_clear_date_time (&old_date);
}