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 @@
+
+
+