summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-17 23:54:46 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-17 23:54:46 -0300
commit5d9d0dec7c360133ddeda61526a6c81ac04b425a (patch)
treefd84a41bdfaf9a01805bce8fc240af545cb80adb
parent6df87fb5c13953a2ee2527f1ebff7a3c1444021c (diff)
downloadgnome-calendar-5d9d0dec7c360133ddeda61526a6c81ac04b425a.tar.gz
event-popover: Set better default focus widget
When mapped, move focus to either the first meeting row - if any - or to the edit button. Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/980
-rw-r--r--src/gui/gcal-event-popover.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/gui/gcal-event-popover.c b/src/gui/gcal-event-popover.c
index a1bc1161..9561cf89 100644
--- a/src/gui/gcal-event-popover.c
+++ b/src/gui/gcal-event-popover.c
@@ -559,6 +559,28 @@ on_time_format_changed_cb (GcalEventPopover *self)
/*
+ * GtkWidget overrides
+ */
+
+static void
+gcal_event_popover_map (GtkWidget *widget)
+{
+ GcalEventPopover *self = (GcalEventPopover *) widget;
+ GtkListBoxRow *first_meeting_row;
+
+ GTK_WIDGET_CLASS (gcal_event_popover_parent_class)->map (widget);
+
+ first_meeting_row = gtk_list_box_get_row_at_index (self->meetings_listbox, 0);
+ g_message ("Meeting row: %p (%s)", first_meeting_row, first_meeting_row ? G_OBJECT_TYPE_NAME (first_meeting_row) : "none");
+
+ if (first_meeting_row)
+ gtk_widget_grab_focus (GTK_WIDGET (first_meeting_row));
+ else
+ gtk_widget_grab_focus (self->edit_button);
+}
+
+
+/*
* GObject overrides
*/
@@ -636,6 +658,8 @@ gcal_event_popover_class_init (GcalEventPopoverClass *klass)
object_class->get_property = gcal_event_popover_get_property;
object_class->set_property = gcal_event_popover_set_property;
+ widget_class->map = gcal_event_popover_map;
+
/**
* GcalEventPopover::context:
*