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:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user