]> git.wh0rd.org Git - nano.git/commitdiff
in do_mouse(), avoid redundant screen updates by using edit_redraw()
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 25 Jul 2005 19:04:20 +0000 (19:04 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 25 Jul 2005 19:04:20 +0000 (19:04 +0000)
instead of edit_refresh(), and remove now-erroneous code that disables
setting the mark while in view mode

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2928 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 44d1ef1c119189c7b421a5b1a7831c51f3568bc0..213019f6096f815db31251dd19ba666fab462182 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -141,6 +141,10 @@ CVS code -
   do_next_word()
        - Rework to be more like do_prev_word(), to avoid a potential
          problem if we start at the end of a line. (DLR)
+  do_mouse()
+       - Avoid redundant screen updates by using edit_redraw() instead
+         of edit_refresh(), and remove now-erroneous code that disables
+         setting the mark while in view mode. (DLR)
   do_output()
        - When adding a character, just add its length in bytes to
          current_x instead of calling do_right(), and set placewewant
index d9e5d5ff385bd5cd78019a92c3d6a88199a74a58..41c2d1932bcdc82a264ed6e9849cc23011158f9b 100644 (file)
@@ -1728,8 +1728,9 @@ bool do_mouse(void)
            bool sameline;
                /* Did they click on the line with the cursor?  If they
                 * clicked on the cursor, we set the mark. */
-           size_t xcur;
-               /* The character they clicked on. */
+           const filestruct *current_save = openfile->current;
+           size_t current_x_save = openfile->current_x;
+           size_t pww_save = openfile->placewewant;
 
            /* Subtract out the size of topwin. */
            mouse_y -= 2 - no_more_space();
@@ -1744,25 +1745,19 @@ bool do_mouse(void)
                openfile->current->prev != NULL; openfile->current_y--)
                openfile->current = openfile->current->prev;
 
-           xcur = actual_x(openfile->current->data,
+           openfile->current_x = actual_x(openfile->current->data,
                get_page_start(xplustabs()) + mouse_x);
+           openfile->placewewant = xplustabs();
 
 #ifndef NANO_SMALL
            /* Clicking where the cursor is toggles the mark, as does
             * clicking beyond the line length with the cursor at the
             * end of the line. */
-           if (sameline && xcur == openfile->current_x) {
-               if (ISSET(VIEW_MODE)) {
-                   print_view_warning();
-                   return retval;
-               }
+           if (sameline && openfile->current_x == current_x_save)
                do_mark();
-           }
 #endif
 
-           openfile->current_x = xcur;
-           openfile->placewewant = xplustabs();
-           edit_refresh();
+           edit_redraw(current_save, pww_save);
        }
     }