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
This commit is contained in:
@@ -558,6 +558,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:
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user