From 08e83188899311dd42724df791e847cc54ae9365 Mon Sep 17 00:00:00 2001 From: Hari Rana Date: Sun, 14 Dec 2025 17:14:53 -0500 Subject: [PATCH] views/month-view: Allow navigating with Tab This also notifies if keyboard navigation fails. --- src/gui/views/gcal-month-view.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/gui/views/gcal-month-view.c b/src/gui/views/gcal-month-view.c index 84e66c67..c24fef05 100644 --- a/src/gui/views/gcal-month-view.c +++ b/src/gui/views/gcal-month-view.c @@ -1306,22 +1306,21 @@ static gboolean gcal_month_view_focus (GtkWidget *widget, GtkDirectionType direction) { - GtkRoot *root; GtkWidget *focused; - gboolean forward_or_backward, is_event_widget, is_ancestor; + GtkRoot *root; root = gtk_widget_get_root (widget); focused = gtk_root_get_focus (root); - is_event_widget = GCAL_IS_EVENT_WIDGET (focused); - is_ancestor = (focused && gtk_widget_is_ancestor (focused, widget)); + if (direction == GTK_DIR_TAB_FORWARD || direction == GTK_DIR_TAB_BACKWARD) + return GTK_WIDGET_CLASS (gcal_month_view_parent_class)->focus (widget, direction); - forward_or_backward = direction == GTK_DIR_TAB_FORWARD || direction == GTK_DIR_TAB_BACKWARD; - - if ((is_event_widget && forward_or_backward) || !(is_ancestor || forward_or_backward)) + if (focused && !gtk_widget_is_ancestor (focused, widget)) return FALSE; - GTK_WIDGET_CLASS (gcal_month_view_parent_class)->focus (widget, direction); + if (!GTK_WIDGET_CLASS (gcal_month_view_parent_class)->focus (widget, direction)) + return gtk_widget_keynav_failed (widget, direction); + return TRUE; }