summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2023-03-08 00:03:28 +0100
committerCarlos Garnacho <carlosg@gnome.org>2023-03-08 11:33:10 +0100
commitd12bea03d2baf1dbd21ad2e8a2f104c6507a7ffe (patch)
treefdcfb91a4a451897cd371ce80d1f9ac43f2a999d /gtk
parentdeacc63d54e522f51b6f36d8c6b3067c8bd834b1 (diff)
downloadgtk+-d12bea03d2baf1dbd21ad2e8a2f104c6507a7ffe.tar.gz
searchengine: Bail out on the first character
Again on massive filesystems, the very first character is likely to bring a likewise massive amount of search results that we need to maybe query info for, then create icons and widgets for. While it's impressive we can do that, it's also expensive and likely pointless, for the first character. Typing a second character is however very likely to considerably reduce the amount of items to categorize and show. So start actually searching from there. Testing on a filesystem with 1434099 files indexed, trying 5 semi-random 1 character searches (n, h, t, i, o) returns on average 168K items (min. 78771, max. 331471), trying 5 semi-random 2 character searches (no, he, th, in, on) returns on average 34K items (min. 11133, max. 94961), which is a more approachable set. Doing this is enough that typing on a filechooser search entry feels completely fluid.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtksearchenginetracker3.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gtk/gtksearchenginetracker3.c b/gtk/gtksearchenginetracker3.c
index 5ce8916f39..86a8e8fe98 100644
--- a/gtk/gtksearchenginetracker3.c
+++ b/gtk/gtksearchenginetracker3.c
@@ -284,10 +284,14 @@ gtk_search_engine_tracker3_start (GtkSearchEngine *engine)
return;
}
- tracker->query_pending = TRUE;
search_text = gtk_query_get_text (tracker->query);
location = gtk_query_get_location (tracker->query);
+ if (strlen (search_text) <= 1)
+ return;
+
+ tracker->query_pending = TRUE;
+
if (location)
{
char *location_uri = g_file_get_uri (location);