From 7f97620439833c2f75bf7d778cba58ebc85eca56 Mon Sep 17 00:00:00 2001 From: Automeris naranja Date: Fri, 3 May 2024 00:48:18 -0300 Subject: [PATCH] calendar-row: Add a popover to explain about read-only calendars When a calendar is read-only, a lock icon appears and the tooltip of this icon shows the "Read-Only Calendar" text. However: - Tooltips won't work in a touch device - Orca doesn't read this text To fix this, use a button with a popover, which contains a text explaining that the calendar is read-only. --- src/gui/calendar-management/calendar-row.ui | 31 ++++++++++++++++--- .../calendar-management/gcal-calendars-page.c | 6 ++-- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/gui/calendar-management/calendar-row.ui b/src/gui/calendar-management/calendar-row.ui index b4cbd400f..3fdcc946d 100644 --- a/src/gui/calendar-management/calendar-row.ui +++ b/src/gui/calendar-management/calendar-row.ui @@ -13,13 +13,16 @@ - + - - Read-Only Calendar + + More Information changes-prevent-symbolic - 20 center + read_only_info_popover + @@ -41,4 +44,24 @@ + + + + + center + 6 + 6 + 6 + 6 + This calendar is read-only. No events can be added, changed or deleted. + True + 50 + center + + True + + + diff --git a/src/gui/calendar-management/gcal-calendars-page.c b/src/gui/calendar-management/gcal-calendars-page.c index e3ab0cc7b..27703c61a 100644 --- a/src/gui/calendar-management/gcal-calendars-page.c +++ b/src/gui/calendar-management/gcal-calendars-page.c @@ -70,7 +70,7 @@ make_calendar_row (GcalCalendarsPage *self, g_autoptr (GdkPaintable) color_paintable = NULL; g_autofree gchar *parent_name = NULL; g_autoptr (GtkBuilder) builder = NULL; - GtkWidget *read_only_icon; + GtkWidget *read_only_info_button; const GdkRGBA *color; GcalManager *manager; GtkWidget *icon; @@ -90,8 +90,8 @@ make_calendar_row (GcalCalendarsPage *self, row = g_object_ref (GTK_WIDGET (gtk_builder_get_object (builder, "row"))); /* read-only icon */ - read_only_icon = GTK_WIDGET (gtk_builder_get_object (builder, "read_only_icon")); - gtk_widget_set_visible (read_only_icon, gcal_calendar_is_read_only (calendar)); + read_only_info_button = GTK_WIDGET (gtk_builder_get_object (builder, "read_only_info_button")); + gtk_widget_set_visible (read_only_info_button, gcal_calendar_is_read_only (calendar)); /* source color icon */ color = gcal_calendar_get_color (calendar); -- GitLab