week-header: Simplify set_date()
This commit is contained in:
@@ -1905,33 +1905,29 @@ void
|
|||||||
gcal_week_header_set_date (GcalWeekHeader *self,
|
gcal_week_header_set_date (GcalWeekHeader *self,
|
||||||
GDateTime *date)
|
GDateTime *date)
|
||||||
{
|
{
|
||||||
GDateTime *old_date, *new_date;
|
gboolean had_date;
|
||||||
|
|
||||||
old_date = self->active_date;
|
|
||||||
new_date = g_date_time_ref (date);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the active date changed, but we're still in the same week,
|
* If the active date changed, but we're still in the same week,
|
||||||
* there's no need to recalculate visible events.
|
* there's no need to recalculate visible events.
|
||||||
*/
|
*/
|
||||||
if (old_date && new_date &&
|
if (self->active_date && date &&
|
||||||
g_date_time_get_year (old_date) == g_date_time_get_year (new_date) &&
|
g_date_time_get_year (self->active_date) == g_date_time_get_year (date) &&
|
||||||
g_date_time_get_week_of_year (old_date) == g_date_time_get_week_of_year (new_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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
self->active_date = new_date;
|
had_date = self->active_date != NULL;
|
||||||
|
|
||||||
|
gcal_set_date_time (&self->active_date, date);
|
||||||
|
|
||||||
update_title (self);
|
update_title (self);
|
||||||
gtk_widget_queue_draw (GTK_WIDGET (self));
|
gtk_widget_queue_draw (GTK_WIDGET (self));
|
||||||
|
|
||||||
if (old_date)
|
if (had_date)
|
||||||
update_unchanged_events (self, self->active_date);
|
update_unchanged_events (self, self->active_date);
|
||||||
|
|
||||||
update_weather_infos (self);
|
update_weather_infos (self);
|
||||||
|
|
||||||
gcal_clear_date_time (&old_date);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user