From 2ceee6f757cd816dc8a4a3405bd0f48d79502013 Mon Sep 17 00:00:00 2001 From: Vladimir Vaskov Date: Wed, 9 Jul 2025 14:40:55 +0300 Subject: [PATCH] overview: Add possibility to hide keyboard with any OSK provider --- src/app-grid.c | 10 ++++++++++ src/ui/app-grid.ui | 26 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/src/app-grid.c b/src/app-grid.c index a4dbf1594..4224fcb13 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 02b309525..ada22cffb 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 + + + + + + + -- GitLab