Applied to OpenBSD now, will be in SF later, thanks.

On Wed, Dec 10, 2014 at 04:33:51PM -0800, Michael Graczyk wrote:
>    Whoops, last message had the wrong attachment.** This is the correct one.
>    On Wed, Dec 10, 2014 at 3:54 PM, Michael Graczyk <[1]mich...@mgraczyk.com>
>    wrote:
> 
>      Thanks Javier for the information. Good to know.
>      Thomas,
>      I removed "static" from the declaration.
> 
>      Bye the time window_copy_redraw_screen is called, the old data->cy has
>      already been clobbered so there is no way of determining which lines
>      must be withdrawn.** I made**window_copy_for_selection it's own function
>      because there are other places that it could save cycles
>      (ie**window_copy_goto_line,**window_copy_scroll_to) but those changes
>      were outside the scope of this patch.
> 
>      P.S. I noticed tmux does not use static functions but I couldn't find an
>      explanation in the repository.** What's the reason for that?
>      On Wed, Dec 10, 2014 at 7:12 AM, Thomas Adam <[2]tho...@xteddy.org>
>      wrote:
> 
>        On Tue, Dec 09, 2014 at 01:45:48AM -0800, Michael Graczyk wrote:
>        > +static void
> 
>        We don't mark functions as static in tmux; not even for the portable
>        version.
>        >** ** ** ** ** ** ** ** ** ** ** **if
>        (window_copy_update_selection(wp, 1))
>        > -** ** ** ** ** ** ** ** ** ** ** ** ** **
>        **window_copy_redraw_screen(wp);
>        > +** ** ** ** ** ** ** ** ** ** ** ** ** **
>        **window_copy_for_selection(wp, old_cy);
> 
>        Rather than having a new function for this, why not put the logic into
>        window_copy_redraw_screen?** The mode for the wp is already known.
>        -- Thomas Adam
> 
> References
> 
>    Visible links
>    1. mailto:mich...@mgraczyk.com
>    2. mailto:tho...@xteddy.org

> From 2e20f9fce84f9fda16788a4cd26cd87cfce19cba Mon Sep 17 00:00:00 2001
> From: Michael Graczyk <mich...@mgraczyk.com>
> Date: Mon, 8 Dec 2014 16:57:49 -0800
> Subject: [PATCH] Fix poor performance during mouse mode selection.
> 
> ---
>  window-copy.c | 25 ++++++++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)
> 
> diff --git a/window-copy.c b/window-copy.c
> index f597332..5f7b76a 100644
> --- a/window-copy.c
> +++ b/window-copy.c
> @@ -869,11 +869,33 @@ window_copy_key_numeric_prefix(struct window_pane *wp, 
> int key)
>  }
>  
>  void
> +window_copy_for_selection(
> +             struct window_pane *wp,
> +             u_int old_y
> +) {
> +     struct window_copy_mode_data    *data = wp->modedata;
> +     const u_int new_y = data->cy;
> +     u_int start, end, lines;
> +
> +     if (old_y <= new_y) {
> +             start = old_y;
> +             end = new_y;
> +     } else {
> +             start = new_y;
> +             end = old_y;
> +     }
> +
> +     lines = end - start + 1;
> +     window_copy_redraw_lines(wp, start, lines);
> +}
> +
> +void
>  window_copy_mouse(struct window_pane *wp, struct session *sess,
>      struct mouse_event *m)
>  {
>       struct window_copy_mode_data    *data = wp->modedata;
>       struct screen                   *s = &data->screen;
> +     u_int old_cy;
>       u_int                            i;
>  
>       if (m->x >= screen_size_x(s))
> @@ -907,9 +929,10 @@ window_copy_mouse(struct window_pane *wp, struct session 
> *sess,
>        */
>       if (s->mode & MODE_MOUSE_BUTTON) {
>               if (~m->event & MOUSE_EVENT_UP) {
> +                     old_cy = data->cy;
>                       window_copy_update_cursor(wp, m->x, m->y);
>                       if (window_copy_update_selection(wp, 1))
> -                             window_copy_redraw_screen(wp);
> +                             window_copy_for_selection(wp, old_cy);
>                       return;
>               }
>               goto reset_mode;
> -- 
> 2.2.0.rc0.207.ga3a616c
> 


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to