From 3a544b22fc363d6e7ab0b6c27eb060b20cb30586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Tyrychtr?= Date: Tue, 2 Sep 2025 10:18:27 +0200 Subject: [PATCH] week-view: Add tooltip to the all day events expander This adds a tooltip to the all day events expander button, indicating whether the expander will expand or collapse upon activation. Fixes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1449 Part-of: --- src/gui/views/gcal-week-view.blp | 1 + src/gui/views/gcal-week-view.c | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/gui/views/gcal-week-view.blp b/src/gui/views/gcal-week-view.blp index 054bf143..74698d14 100644 --- a/src/gui/views/gcal-week-view.blp +++ b/src/gui/views/gcal-week-view.blp @@ -16,6 +16,7 @@ template $GcalWeekView: Box { ToggleButton { visible: bind header.can-expand; active: bind header.expanded bidirectional; + tooltip-text: bind $get_header_state_tooltip(header.expanded) as ; hexpand: true; halign: center; valign: end; diff --git a/src/gui/views/gcal-week-view.c b/src/gui/views/gcal-week-view.c index 8b825b23..d2d7943d 100644 --- a/src/gui/views/gcal-week-view.c +++ b/src/gui/views/gcal-week-view.c @@ -233,6 +233,16 @@ restore_zoom_level (GcalWeekView *self) /* Callbacks */ +static gchar* +get_header_state_tooltip (GcalWeekView *self, + gboolean expanded) +{ + if (expanded) + return g_strdup (_("Hide Additional Events")); + else + return g_strdup (_("Show Additional Events")); +} + static void on_event_activated (GcalWeekView *self, GtkWidget *widget) @@ -652,6 +662,7 @@ gcal_week_view_class_init (GcalWeekViewClass *klass) gtk_widget_class_bind_template_child (widget_class, GcalWeekView, scrolled_window); gtk_widget_class_bind_template_child (widget_class, GcalWeekView, week_grid); + gtk_widget_class_bind_template_callback (widget_class, get_header_state_tooltip); gtk_widget_class_bind_template_callback (widget_class, on_event_activated); gtk_widget_class_bind_template_callback (widget_class, on_motion_controller_enter_cb); gtk_widget_class_bind_template_callback (widget_class, on_motion_controller_motion_cb);