views: Redraw the date chooser (mini-calendar) after changing week-start-day

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/822>
This commit is contained in:
mindonwarp
2026-09-26 17:22:00 +00:00
committed by Marge Bot
parent be55238eaa
commit a6a977e5ca
+29
View File
@@ -575,6 +575,14 @@ on_clock_day_changed_cb (GcalDateChooser *self)
/* FIXME Update the widget to the new day. */
}
static void
on_week_start_day_changed_cb (GcalDateChooser *self)
{
g_assert (GCAL_IS_DATE_CHOOSER (self));
gcal_view_first_weekday_changed (GCAL_VIEW (self));
}
static gboolean
update_event_indicators_in_idle_cb (gpointer data)
{
@@ -663,6 +671,20 @@ gcal_date_chooser_get_previous_date (GcalView *view)
return g_date_time_add_months (self->date, -1);
}
static void
gcal_date_chooser_first_weekday_changed (GcalView *view)
{
GcalDateChooser *self = GCAL_DATE_CHOOSER (view);
GcalContext *context = gcal_application_get_context (GCAL_DEFAULT_APPLICATION);
self->week_start = gcal_context_get_week_start_day (context);
calendar_init_weekday_display (self);
calendar_compute_days (self);
calendar_update_selected_day_display (self);
}
static void
gcal_view_interface_init (GcalViewInterface *iface)
{
@@ -671,6 +693,7 @@ gcal_view_interface_init (GcalViewInterface *iface)
iface->get_children_by_uuid = gcal_date_chooser_get_children_by_uuid;
iface->get_next_date = gcal_date_chooser_get_next_date;
iface->get_previous_date = gcal_date_chooser_get_previous_date;
iface->first_weekday_changed = gcal_date_chooser_first_weekday_changed;
}
@@ -1219,6 +1242,12 @@ gcal_date_chooser_init (GcalDateChooser *self)
G_CALLBACK (on_clock_day_changed_cb),
self,
G_CONNECT_SWAPPED);
g_signal_connect_object (context,
"notify::week-start-day",
G_CALLBACK (on_week_start_day_changed_cb),
self,
G_CONNECT_SWAPPED);
}