[gnome-builder] libide/search: pretend to refilter on exact match



commit 28d3705ff42bc73a6fc1c63613bbcb4a08e88b25
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jul 15 17:47:23 2022 -0700

    libide/search: pretend to refilter on exact match
    
    This can happen when we activate from Enter, as we try to do a followup
    query first.

 src/libide/search/ide-search-results.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/src/libide/search/ide-search-results.c b/src/libide/search/ide-search-results.c
index d609a015e..92de91336 100644
--- a/src/libide/search/ide-search-results.c
+++ b/src/libide/search/ide-search-results.c
@@ -148,12 +148,20 @@ ide_search_results_refilter (IdeSearchResults *self,
 {
   g_autofree char *old_query = NULL;
 
+  IDE_ENTRY;
+
   g_return_val_if_fail (IDE_IS_SEARCH_RESULTS (self), FALSE);
   g_return_val_if_fail (query != NULL, FALSE);
 
   /* Make sure we have the prefix of the original search */
   if (memcmp (self->query, query, self->query_len) != 0)
-    return FALSE;
+    IDE_RETURN (FALSE);
+
+  /* If they are exactly the same, ignore the request but
+   * pretend we refiltered.
+   */
+  if (g_strcmp0 (self->refilter, query) == 0)
+    IDE_RETURN (TRUE);
 
   /* Swap the filtering query */
   old_query = g_steal_pointer (&self->refilter);
@@ -169,5 +177,5 @@ ide_search_results_refilter (IdeSearchResults *self,
   if (gtk_filter_list_model_get_filter (self->filter_model) == NULL)
     gtk_filter_list_model_set_filter (self->filter_model, GTK_FILTER (self->filter));
 
-  return TRUE;
+  IDE_RETURN (TRUE);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]