]> git.wh0rd.org Git - nano.git/commitdiff
Avoiding an "Unknown Command" on every cursor-positioning mouse click.
authorBenno Schulenberg <bensberg@justemail.net>
Mon, 16 Jun 2014 12:30:35 +0000 (12:30 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Mon, 16 Jun 2014 12:30:35 +0000 (12:30 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4968 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index f1ce1a39f14306ea63ee5e9325f57e53768c1d54..37c8da5951bf9dedf2cef96aeea1de3f9035aebc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,9 @@
        * configure.ac: For the sake of statically linked systems, make sure
        the compiler also links against libz, which is used by libmagic.
        This fixes Savannah bug #38378, reported by Alan Hourihane.
+       * src/nano.c (do_mouse, do_input): Don't bother returning zero when
+       the cursor moved, just reset the cutbuffer directly.  This avoids an
+       "Unknown Command" message on every cursor-positioning mouse click.
 
 2014-06-14  Mark Majeres  <mark@engine12.com>
        * src/nano.h, src/text.c (undo_cut, update_undo): When undoing a
index 84de5fe1ea0ea90ec9e3dcc0ed8ed43f63848454..50de0adc9d53d3984c03f77f311996b94939ecee 100644 (file)
@@ -1584,14 +1584,12 @@ int do_input(bool *meta_key, bool *func_key, bool allow_funcs)
 #ifndef DISABLE_MOUSE
     if (*func_key && input == KEY_MOUSE) {
        /* We received a mouse click. */
-       int result = do_mouse();
-
-       if (result == 1)
+       if (do_mouse() == 1)
            /* The click was on a shortcut -- read in the character
             * that it was converted into. */
            input = get_kbinput(edit, meta_key, func_key);
-       else if (result != 0)
-           /* The click was invalid -- get out. */
+       else
+           /* The click was invalid or has been handled -- get out. */
            return ERR;
     }
 #endif
@@ -1810,15 +1808,15 @@ int do_mouse(void)
         * the line. */
        if (sameline && openfile->current_x == current_x_save)
            do_mark();
+       else
 #endif
+           /* The cursor moved; clean the cutbuffer on the next cut. */
+           cutbuffer_reset();
 
        edit_redraw(current_save, pww_save);
-
-       /* The click influenced the cursor. */
-       return 0;
     }
 
-    /* The click was elsewhere, ignore it. */
+    /* No more handling is needed. */
     return 2;
 }
 #endif /* !DISABLE_MOUSE */