]> git.wh0rd.org Git - nano.git/commitdiff
in do_yesno(), make mouse clicks on the Yes/No/All shortcuts work properly when the...
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 2 Nov 2005 15:32:30 +0000 (15:32 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 2 Nov 2005 15:32:30 +0000 (15:32 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3075 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/winio.c

index 4eef071d3f5b03f65ef1449a0207fab441c455bd..5a1b76df8bd0d4632b0869a951c968463eb62208 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -43,6 +43,9 @@ CVS code -
   edit_add()
        - Rename to edit_draw(), and rename parameter yval to line.
          (DLR)
+  do_yesno()
+       - Make mouse clicks on the Yes/No/All shortcuts work properly
+         when the MORE_SPACE flag is set. (DLR)
 - doc/nanorc.sample:
        - Tweak the "c-file" regex for characters to properly accept
          '\"' and reject '"' and '''. (DLR)
index 84fb8d3f5afc4b1fc0111290525437dcefd6d356..e4ca5eb952486429ac619482006c43d687b8827d 100644 (file)
@@ -2933,17 +2933,24 @@ int do_yesno(bool all, const char *msg)
 
            if (mouse_x != -1 && mouse_y != -1 && !ISSET(NO_HELP) &&
                wenclose(bottomwin, mouse_y, mouse_x) &&
-               mouse_x < (width * 2) && mouse_y >= editwinrows + 3) {
+               mouse_x < (width * 2) && mouse_y - (2 -
+               no_more_space()) - editwinrows - 1 >= 0) {
                int x = mouse_x / width;
-                   /* Did we click in the first column of shortcuts, or
-                    * the second? */
-               int y = mouse_y - editwinrows - 3;
-                   /* Did we click in the first row of shortcuts? */
+                       /* Calculate the x-coordinate relative to the
+                        * two columns of the Yes/No/All shortcuts in
+                        * bottomwin. */
+               int y = mouse_y - (2 - no_more_space()) -
+                       editwinrows - 1;
+                       /* Calculate the y-coordinate relative to the
+                        * beginning of the Yes/No/All shortcuts in
+                        * bottomwin, i.e, with the sizes of topwin,
+                        * edit, and the first line of bottomwin
+                        * subtracted out. */
 
                assert(0 <= x && x <= 1 && 0 <= y && y <= 1);
 
-               /* x = 0 means they clicked Yes or No.
-                * y = 0 means Yes or All. */
+               /* x == 0 means they clicked Yes or No.  y == 0 means
+                * Yes or All. */
                ok = -2 * x * y + x - y + 1;
 
                if (ok == 2 && !all)