[gnome-builder] gui: force search engine load upon focusing search box
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] gui: force search engine load upon focusing search box
- Date: Tue, 10 Sep 2019 23:19:24 +0000 (UTC)
commit ce5ffac07c9abe80269589e90f2b01837a2f671c
Author: Christian Hergert <chergert redhat com>
Date: Tue Sep 10 16:17:12 2019 -0700
gui: force search engine load upon focusing search box
This just increases the chances that we'll have a loaded search engine
while the user types. Although, this is only likely to help much in the
"open in editor (non-project) mode" where we don't have proper hooks to
initialize state after project load has settled.
Related #1034
src/libide/gui/ide-search-button.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
---
diff --git a/src/libide/gui/ide-search-button.c b/src/libide/gui/ide-search-button.c
index 168601671..701b1e006 100644
--- a/src/libide/gui/ide-search-button.c
+++ b/src/libide/gui/ide-search-button.c
@@ -177,6 +177,25 @@ suggestion_activated (DzlSuggestionEntry *entry,
ide_search_result_activate (IDE_SEARCH_RESULT (suggestion), focus);
}
+static gboolean
+search_entry_focus_in (GtkEntry *entry,
+ GdkEventFocus *focus,
+ gpointer user_data)
+{
+ IdeWorkbench *workbench;
+ IdeSearchEngine *engine;
+
+ g_assert (GTK_IS_ENTRY (entry));
+ g_assert (focus != NULL);
+
+ /* Load search engine if it is not already */
+ workbench = ide_widget_get_workbench (GTK_WIDGET (entry));
+ engine = ide_workbench_get_search_engine (workbench);
+ (void)engine;
+
+ return GDK_EVENT_PROPAGATE;
+}
+
static void
ide_search_button_class_init (IdeSearchButtonClass *klass)
{
@@ -203,6 +222,7 @@ ide_search_button_init (IdeSearchButton *self)
dzl_gtk_widget_add_style_class (GTK_WIDGET (entry), "global-search");
g_signal_connect (entry, "changed", G_CALLBACK (search_entry_changed), NULL);
+ g_signal_connect (entry, "focus-in-event", G_CALLBACK (search_entry_focus_in), NULL);
g_signal_connect (entry, "suggestion-activated", G_CALLBACK (suggestion_activated), NULL);
dzl_suggestion_entry_set_position_func (entry, search_popover_position_func, NULL, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]