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. */
|
/* 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
|
static gboolean
|
||||||
update_event_indicators_in_idle_cb (gpointer data)
|
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);
|
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
|
static void
|
||||||
gcal_view_interface_init (GcalViewInterface *iface)
|
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_children_by_uuid = gcal_date_chooser_get_children_by_uuid;
|
||||||
iface->get_next_date = gcal_date_chooser_get_next_date;
|
iface->get_next_date = gcal_date_chooser_get_next_date;
|
||||||
iface->get_previous_date = gcal_date_chooser_get_previous_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),
|
G_CALLBACK (on_clock_day_changed_cb),
|
||||||
self,
|
self,
|
||||||
G_CONNECT_SWAPPED);
|
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