]> git.wh0rd.org Git - nano.git/commitdiff
Providing feedback when searching takes longer than roughly half a second.
authorBenno Schulenberg <bensberg@justemail.net>
Mon, 28 Mar 2016 19:00:19 +0000 (19:00 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Mon, 28 Mar 2016 19:00:19 +0000 (19:00 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5767 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/search.c

index 29e02dcc332ed6b3c6da8b2b46424083ff15ce6d..079c13126453e4a0d8b88365cd56f6d988762b17 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
        * src/winio.c (statusbar): Don't bother putting back the cursor in
        the edit window, as it is off anyway, and will be placed back in the
        main loop.  This prevents a segfault when trying to open a directory.
+       * src/search.c (findnextstr): Provide feedback when searching takes
+       longer than roughly half a second (on average).
 
 2016-03-23  Benno Schulenberg  <bensberg@justemail.net>
        * src/search.c (findnextstr): Prevent the internal spell checker from
index 6a43f046ad3c8d6803a3b2ace0fe316d79a445dd..c0afcc013a244b428f1acf02a74da98aaf4adc1c 100644 (file)
@@ -260,6 +260,8 @@ bool findnextstr(
 {
     size_t found_len;
        /* The length of the match we find. */
+    int feedback = 0;
+       /* When bigger than zero, show and wipe the "Searching..." message. */
     ssize_t current_y_find = openfile->current_y;
     filestruct *fileptr = openfile->current;
     const char *rev_start = fileptr->data, *found = NULL;
@@ -291,6 +293,9 @@ bool findnextstr(
                statusbar(_("Cancelled"));
                return FALSE;
            }
+
+           if (++feedback > 0)
+               statusbar(_("Searching..."));
        }
 
        /* Search for the needle in the current line. */
@@ -366,6 +371,8 @@ bool findnextstr(
                current_y_find = 0;
            }
            statusbar(_("Search Wrapped"));
+           /* Delay the "Searching..." message for at least two seconds. */
+           feedback = -2;
        }
 
        /* If we've reached the original starting line, take note. */
@@ -392,6 +399,9 @@ bool findnextstr(
     if (match_len != NULL)
        *match_len = found_len;
 
+    if (feedback > 0)
+       blank_statusbar();
+
     return TRUE;
 }