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