From 3d5e94560d62fc11ee614d4a9fd0713063f09bd1 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 25 Jul 2005 19:04:20 +0000 Subject: [PATCH] in 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 git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2928 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 4 ++++ src/nano.c | 19 +++++++------------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 44d1ef1c..213019f6 100644 --- 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 diff --git a/src/nano.c b/src/nano.c index d9e5d5ff..41c2d193 100644 --- a/src/nano.c +++ b/src/nano.c @@ -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); } } -- 2.39.5