Applied, but without the shift part.
On Fri, Apr 25, 2014 at 12:20:12PM +0200, Marcel Partap wrote: > > I am still not convinced by this, I don't need more tests, I need good > > reasons why we should do this - what is it useful for apart from > > scrolling in less? Why shouldn't this be done in less itself? It can't > > be that hard to make less support the mouse. > Because it gives all CLI programs (even bash history) "intuitive" mouse > support without updating/fixing every single one of them. There are > numerous CLI tools that do take mouse input, but mess it up somehow, > f.e. aptitude can not deal with it properly and in ncmpcpp, only > scrolling up (!) works. Less has had an open enhancement request (#272 > [0]) for it since 2007, and someone has posted a patch [1] for less but > it never got integrated, I sent the less maintainer a mail about it > yesterday with no answer as of yet. > > Yes, these programs can and should all be fixed. But integrating the > proposed code in tmux helps work around the issue straight away, as vte > [attached] and KDE's konsole [2] did upstream, and was posted for urxvt > [3] as well. > It just makes tmux usage more comfortable for a very common use case. > > #Regards > > > [0] > http://wayback.archive.org/web/20070519231912/http://www.greenwoodsoftware.com/less/bugs.html > [1] > http://www.linuxquestions.org/questions/linux-software-2/less-command-output-i-cannot-scroll-through-it-627821/page2.html#post3094148 > [2] > http://websvn.kde.org/trunk/KDE/kdebase/apps/konsole/src/TerminalDisplay.cpp?r1=786780&r2=786779&pathrev=786780 > [3] > http://mywaytoarch.tumblr.com/post/14455320734/scrolling-mouse-wheel-improvments-vte-like-in-urxvt > >From ca778f57c983bf7994563c9b0df1d28f3af024e2 Mon Sep 17 00:00:00 2001 > From: Chris Wilson <ch...@chris-wilson.co.uk> > Date: Wed, 4 Apr 2007 10:53:19 +0000 > Subject: [PATCH] =?UTF-8?q?Bug=20424184=20=E2=80=93=20Make=20scroll=20whee?= > =?UTF-8?q?l=20send=20Page=20Up/Down=20when=20it=20makes=20sense?= > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > 2007-04-04 Chris Wilson <ch...@chris-wilson.co.uk> > > Bug 424184 ??? Make scroll wheel send Page Up/Down when it makes sense > > Original patch by Shaun McCance and refined by Baris Cicek. > > * src/vte.c (vte_terminal_scroll): > Send cursor keypress instead of trying to scroll the > alternate screen in vain. > > > svn path=/trunk/; revision=1864 > --- > ChangeLog | 10 ++++++++++ > src/vte.c | 44 +++++++++++++++++++++++++++++++++++++++----- > 2 files changed, 49 insertions(+), 5 deletions(-) > > diff --git a/ChangeLog b/ChangeLog > index ef46cdd..affeff3 100644 > --- a/ChangeLog > +++ b/ChangeLog > @@ -1,3 +1,13 @@ > +2007-04-04 Chris Wilson <ch...@chris-wilson.co.uk> > + > + Bug 424184 ??? Make scroll wheel send Page Up/Down when it makes sense > + > + Original patch by Shaun McCance and refined by Baris Cicek. > + > + * src/vte.c (vte_terminal_scroll): > + Send cursor keypress instead of trying to scroll the > + alternate screen in vain. > + > 2007-04-03 Chris Wilson <ch...@chris-wilson.co.uk> > > Bug 425767 ??? vte_terminal_set_color_highlight should test for > diff --git a/src/vte.c b/src/vte.c > index 69c69ae..d369f47 100644 > --- a/src/vte.c > +++ b/src/vte.c > @@ -10202,7 +10202,6 @@ vte_terminal_scroll(GtkWidget *widget, GdkEventScroll > *event) > return TRUE; > } > > - /* Perform a history scroll. */ > adj = terminal->adjustment; > v = MAX (1., ceil (adj->page_increment / 10.)); > switch (event->direction) { > @@ -10214,10 +10213,45 @@ vte_terminal_scroll(GtkWidget *widget, > GdkEventScroll *event) > default: > return FALSE; > } > - v += terminal->pvt->screen->scroll_delta; > - new_value = floor (CLAMP (v, adj->lower, > - MAX (adj->lower, adj->upper - adj->page_size))); > - vte_terminal_queue_adjustment_value_changed (terminal, new_value); > + > + if (terminal->pvt->screen == &terminal->pvt->alternate_screen) { > + char *normal; > + gssize normal_length; > + const gchar *special; > + gint i, cnt = v; > + > + /* In the alternate screen there is no scrolling, > + * so fake a few cursor keystrokes. */ > + > + _vte_keymap_map ( > + cnt > 0 ? GDK_Down : GDK_Up, > + terminal->pvt->modifiers, > + terminal->pvt->sun_fkey_mode, > + terminal->pvt->hp_fkey_mode, > + terminal->pvt->legacy_fkey_mode, > + terminal->pvt->vt220_fkey_mode, > + terminal->pvt->cursor_mode == > VTE_KEYMODE_APPLICATION, > + terminal->pvt->keypad_mode == > VTE_KEYMODE_APPLICATION, > + terminal->pvt->termcap, > + terminal->pvt->emulation ? > + terminal->pvt->emulation : > vte_terminal_get_default_emulation(terminal), > + &normal, > + &normal_length, > + &special); > + if (cnt < 0) > + cnt = -cnt; > + for (i = 0; i < cnt; i++) { > + vte_terminal_feed_child_using_modes (terminal, > + normal, normal_length); > + } > + g_free (normal); > + } else { > + /* Perform a history scroll. */ > + v += terminal->pvt->screen->scroll_delta; > + new_value = floor (CLAMP (v, adj->lower, > + MAX (adj->lower, adj->upper - > adj->page_size))); > + vte_terminal_queue_adjustment_value_changed (terminal, > new_value); > + } > > return TRUE; > } > -- > 2.0.0.rc0 > ------------------------------------------------------------------------------ Is your legacy SCM system holding you back? Join Perforce May 7 to find out: • 3 signs your SCM is hindering your productivity • Requirements for releasing software faster • Expert tips and advice for migrating your SCM now http://p.sf.net/sfu/perforce _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users