diff --git a/src/overview.c b/src/overview.c index d89f9c0fc282b65f7e43e9b89aa8d01603bbfc46..9f217e7e4f26f9a2391ce04213c22eba6a575507 100644 --- a/src/overview.c +++ b/src/overview.c @@ -129,6 +129,14 @@ find_activity_by_toplevel (PhoshOverview *self, } +static void +scroll_to_activity (PhoshOverview *self, PhoshActivity *activity) +{ + PhoshOverviewPrivate *priv = phosh_overview_get_instance_private (self); + hdy_carousel_scroll_to (HDY_CAROUSEL (priv->carousel_running_activities), GTK_WIDGET (activity)); + gtk_widget_grab_focus (GTK_WIDGET (activity)); +} + static void on_activity_clicked (PhoshOverview *self, PhoshActivity *activity) { @@ -200,7 +208,7 @@ on_toplevel_activated_changed (PhoshToplevel *toplevel, GParamSpec *pspec, Phosh if (phosh_toplevel_is_activated (toplevel)) { activity = find_activity_by_toplevel (overview, toplevel); priv->activity = activity; - hdy_carousel_scroll_to (HDY_CAROUSEL (priv->carousel_running_activities), GTK_WIDGET (activity)); + scroll_to_activity (overview, activity); } } @@ -294,7 +302,7 @@ add_activity (PhoshOverview *self, PhoshToplevel *toplevel) phosh_connect_feedback (activity); if (phosh_toplevel_is_activated (toplevel)) { - hdy_carousel_scroll_to (HDY_CAROUSEL (priv->carousel_running_activities), activity); + scroll_to_activity (self, PHOSH_ACTIVITY (activity)); priv->activity = PHOSH_ACTIVITY (activity); } } @@ -430,6 +438,7 @@ page_changed_cb (PhoshOverview *self, activity = PHOSH_ACTIVITY (g_list_nth_data (list, index)); toplevel = get_toplevel_from_activity (activity); phosh_toplevel_activate (toplevel, phosh_wayland_get_wl_seat (phosh_wayland_get_default ())); + gtk_widget_grab_focus (GTK_WIDGET (activity)); }