GTK3's smooth scrolling (which is available on e.g. touchpads) causes the view to jump.
Every 5 lines that are scrolled smoothly, it jumps ahead an additional 4-5 lines. i.e. the progression is 1-1-1-1-4-1-1-1-1-4 which is not very smooth at all.
I remember noticing something like that a while ago actually, but roxterm just lets GTK or vte handle any scroll events itself, so I've no idea what I can do about it :-(. It's probably related to #126.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can reproduce it with vte-0.42 + roxterm, but not with vte-0.42 + any other vte-based emulator. I have absolutely no clue what could go wrong.
I cannot, however, reproduce with vte-0.44 + roxterm. Note that vte-0.44 changed a lot in the scrolling code (and introduced super smooth scrolling, that is, it scrolls by pixels instead of character rows).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I suspect that smooth scrolling is activated in parallel with regular scrolling. Thus you get the smooth line-by-line steps, but also large steps every 5 lines.
@Egmont: I can still reproduce it even with vte 0.44. Scrolling is super smooth, but it's also still jumping every 5 lines.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I played a bit with 0.42 ./configure --enable-debug; followed by VTE_DEBUG=events roxterm.
vte_terminal_scroll(), which is a static method and is only used when being assigned to widget_class->scroll_event, is usually being called with event->direction being GDK_SCROLL_SMOOTH (that's okay), and is also sometimes being called with GDK_SCROLL_UP/DOWN which is totally mysterious to me. The latter one does not necessarily occur at the same time when a SMOOTH scroll event actually happens to scroll by a line.
I suspect that smooth scrolling is activated in parallel with regular scrolling.
Yup, it seems so. But why, and whose fault is it???
Last edit: Egmont Koblinger 2016-05-13
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I tried with gnome-terminal, the two vte test apps included in vte's tarball, terminator (gtk3 branch), terminix, sakura, tilda. None of them suffers from this problem, only roxterm.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks for your input, but I'm afraid I've decided to discontinue development of roxterm. See [https://sourceforge.net/p/roxterm/discussion/422638/thread/60da6975/]
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I remember noticing something like that a while ago actually, but roxterm just lets GTK or vte handle any scroll events itself, so I've no idea what I can do about it :-(. It's probably related to #126.
Hmm, I just tried Gnome-Terminal, and unlike Roxterm, it scrolls smoothly. What could the difference be? Both use vte and GTK3.
I can reproduce it with vte-0.42 + roxterm, but not with vte-0.42 + any other vte-based emulator. I have absolutely no clue what could go wrong.
I cannot, however, reproduce with vte-0.44 + roxterm. Note that vte-0.44 changed a lot in the scrolling code (and introduced super smooth scrolling, that is, it scrolls by pixels instead of character rows).
I suspect that smooth scrolling is activated in parallel with regular scrolling. Thus you get the smooth line-by-line steps, but also large steps every 5 lines.
@Egmont: I can still reproduce it even with vte 0.44. Scrolling is super smooth, but it's also still jumping every 5 lines.
I played a bit with 0.42 ./configure --enable-debug; followed by VTE_DEBUG=events roxterm.
vte_terminal_scroll(), which is a static method and is only used when being assigned to widget_class->scroll_event, is usually being called with event->direction being GDK_SCROLL_SMOOTH (that's okay), and is also sometimes being called with GDK_SCROLL_UP/DOWN which is totally mysterious to me. The latter one does not necessarily occur at the same time when a SMOOTH scroll event actually happens to scroll by a line.
Yup, it seems so. But why, and whose fault is it???
Last edit: Egmont Koblinger 2016-05-13
I tried with gnome-terminal, the two vte test apps included in vte's tarball, terminator (gtk3 branch), terminix, sakura, tilda. None of them suffers from this problem, only roxterm.
I still cannot reproduce with 0.44, which has the advantage that I could perform a (reverse) git bisect.
For me, the scrolling behavior is fixed by https://git.gnome.org/browse/vte/commit/?id=0612f40 [Use a input-only window: https://bugzilla.gnome.org/show_bug.cgi?id=734920]
I hope this helps.
Last edit: Egmont Koblinger 2016-05-14
Thanks for your input, but I'm afraid I've decided to discontinue development of roxterm. See [https://sourceforge.net/p/roxterm/discussion/422638/thread/60da6975/]
Just for the record: someone's now facing the same bug in gnome-terminal: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843642
I finally figured this out! It's not Roxterm's fault after all.
I had set GTK_IM_MODULE=xim. This causes this behavior in a couple of GTK3 applications. GTK_IM_MODULE=none solves this.