diff --git a/src/app-grid.c b/src/app-grid.c index a4dbf15941b1eafbc7d22a6f72ac655b0984c610..4224fcb13d2bcca7bf6be3f1f25475f85d79b5c0 100644 --- a/src/app-grid.c +++ b/src/app-grid.c @@ -46,6 +46,8 @@ struct _PhoshAppGridPrivate { GtkWidget *deck; GtkWidget *search; + GtkWidget *search_apply_revealer; + GtkWidget *search_apply_button; GtkWidget *apps; GtkWidget *favs; GtkWidget *favs_revealer; @@ -635,6 +637,8 @@ on_search_activated (GtkSearchEntry *entry, if (!gtk_widget_has_focus (GTK_WIDGET (entry))) return; + gtk_widget_grab_focus (priv->search_apply_button); + /* Don't activate when there isn't an active search */ if (!priv->search_string || *priv->search_string == '\0') return; @@ -661,6 +665,8 @@ on_search_lost_focus (GtkWidget *widget, { PhoshAppGridPrivate *priv = phosh_app_grid_get_instance_private (self); + gtk_revealer_set_reveal_child (GTK_REVEALER (priv->search_apply_revealer), FALSE); + gtk_style_context_remove_class (gtk_widget_get_style_context (priv->apps), ACTIVE_SEARCH_CLASS); @@ -675,6 +681,8 @@ on_search_gained_focus (GtkWidget *widget, { PhoshAppGridPrivate *priv = phosh_app_grid_get_instance_private (self); + gtk_revealer_set_reveal_child (GTK_REVEALER (priv->search_apply_revealer), TRUE); + if (priv->search_string && *priv->search_string != '\0') { gtk_style_context_add_class (gtk_widget_get_style_context (priv->apps), ACTIVE_SEARCH_CLASS); @@ -735,6 +743,8 @@ phosh_app_grid_class_init (PhoshAppGridClass *klass) gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGrid, folder_stack); gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGrid, scrolled_window); gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGrid, search); + gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGrid, search_apply_revealer); + gtk_widget_class_bind_template_child_private (widget_class, PhoshAppGrid, search_apply_button); gtk_widget_class_bind_template_callback (widget_class, on_folder_edit_toggled); gtk_widget_class_bind_template_callback (widget_class, on_folder_entry_activated); diff --git a/src/ui/app-grid.ui b/src/ui/app-grid.ui index 02b309525a4ce8b9c28dc9afa6c3a08626a775aa..ada22cffb33e941a57b7c3564fb19db54538fa02 100644 --- a/src/ui/app-grid.ui +++ b/src/ui/app-grid.ui @@ -35,6 +35,32 @@ + + + 1 + slide-left + + + 1 + 6 + center + 36 + 36 + + + 1 + object-select-symbolic + 16 + + + + + + +