diff --git a/ChangeLog b/ChangeLog index 659d2826..41e009d1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,9 @@ CVS code - only optional value. Also fix a wording problem in -W/--wordbounds. Changes to usage(), nano.1, nanorc.5, rnano.1, nano.texi, and nanorc.sample.in. (DLR) + - Fix mouse support so that it really ignores everything except + releases of button 1 (i.e, left clicks). Changes to + enable_mouse_support() and get_mouseinput(). (DLR) - doc/syntax/c.nanorc: - Since .i and .ii are preprocessed C and C++ output, colorize them here. (Mike Frysinger) diff --git a/src/nano.c b/src/nano.c index 37568fe0..b0f342c7 100644 --- a/src/nano.c +++ b/src/nano.c @@ -674,7 +674,7 @@ void disable_mouse_support(void) /* Enable mouse support. */ void enable_mouse_support(void) { - mousemask(BUTTON1_RELEASED, NULL); + mousemask(ALL_MOUSE_EVENTS, NULL); mouseinterval(50); } diff --git a/src/winio.c b/src/winio.c index 4fba6de2..204127c8 100644 --- a/src/winio.c +++ b/src/winio.c @@ -1520,6 +1520,11 @@ bool get_mouseinput(int *mouse_x, int *mouse_y, bool allow_shortcuts) if (getmouse(&mevent) == ERR) return FALSE; + /* If it's not a release of the first mouse button (i.e, a left + * click), get out. */ + if (!(mevent.bstate & BUTTON1_RELEASED)) + return FALSE; + /* Save the screen coordinates where the mouse event took place. */ *mouse_x = mevent.x; *mouse_y = mevent.y;