After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 170871 - Improve scrolling behaviour and track current location
Improve scrolling behaviour and track current location
Product: evince
Classification: Core
Component: general
Other Linux
: Low enhancement
: ---
Assigned To: Evince Maintainers
Evince Maintainers
: 341566 540288 553275 (view as bug list)
Depends on:
Reported: 2005-03-19 05:19 UTC by Bryan W Clark
Modified: 2018-05-22 12:55 UTC
See Also:
GNOME target: ---
GNOME version: ---

The patch (10.88 KB, patch)
2005-09-02 22:02 UTC, Soren Sandmann Pedersen
none Details | Review
Just updated this patch to CVS HEAD (10.67 KB, patch)
2005-09-23 14:17 UTC, Bryan W Clark
none Details | Review
Demonstrating the hack I've developed to make evince usable. (249.69 KB, image/png)
2009-03-29 01:03 UTC, Mike
Scroll screen completely when using the keyboard (957 bytes, patch)
2009-09-28 17:53 UTC, Wouter Bolsterlee (uws)
none Details | Review
Scroll an screen leaving one line context (3.46 KB, patch)
2009-09-30 11:01 UTC, Carlos Garcia Campos
committed Details | Review
Doc exhibiting the behavior. (90.00 KB, application/pdf)
2009-10-13 03:11 UTC, Mike

Description Bryan W Clark 2005-03-19 05:19:24 UTC
In bug 165120 Emil was cool enough to get us spacebar scrolling in Evince. 
However this is only the begining ;-)

I created a mockup to demostrate what I'm talking about here.

   We need to smooth out the scrolling action instead of snapping the view.

   To help out with visual tracking of the scroll area we can overlay an image
that gives a visual cue of what area of the page will be scrolled away.

Same can be done for the reverse.
Comment 1 Kevin Duffus 2005-04-26 14:04:39 UTC
Isn't GTK+ going to provide smooth scrolling sometime in the future?
Comment 2 Marco Pesenti Gritti 2005-07-11 16:15:43 UTC
Bryan, how does this compare to smooth scrolling?
Comment 3 Bryan W Clark 2005-07-11 16:28:15 UTC
I'm not sure how this compares to smooth scrolling.  Perhaps we can use smooth
scrolling to do part of this.

The real idea here is to do the shading part.  I made the shading pretty dark so
that it's obvious, we'd want to implement a lighter shade.  It's meant to help a
person visually track the document as it moves.  The shading quickly marks where
the text will be hidden / visible and then the text is scrolled.
Comment 4 Bryan W Clark 2005-07-11 16:28:58 UTC
But like the progress notification, this is the kind of thing you wouldn't want
happening when you're just running through the pages quickly or you'll get lots
of flashing.
Comment 5 Soren Sandmann Pedersen 2005-09-02 22:02:41 UTC
Created attachment 51745 [details] [review]
The patch

This patch animates the scrolling you get when you use the mouse wheel. It's
kinda slow though, at least with my video driver. It's probably not committable
yet ...
Comment 6 Soren Sandmann Pedersen 2005-09-02 22:04:02 UTC
(and in case it wasn't clear: it doesn't do any shading)
Comment 7 Bryan W Clark 2005-09-23 14:17:12 UTC
Created attachment 52550 [details] [review]
Just updated this patch to CVS HEAD
Comment 8 Artem Baguinski 2005-10-17 21:27:48 UTC
could it be like: 

* space bar "click" -> time between press and release below treshold it does the
scrolling like Bryan suggests (with shading and all)

* space bar "hold" (release timeout) -> while i hold space it scrolls smoothly
(maybe slowly accelerating until some sane "full speed") as soon as i released
space it abruptly stops.
Comment 9 Wouter Bolsterlee (uws) 2006-11-04 19:42:10 UTC
*** Bug 341566 has been marked as a duplicate of this bug. ***
Comment 10 Philip Ganchev 2007-02-22 00:42:46 UTC
You can avoid interference when you're running through pages fast by showing it only if requests for scrolling are separated by a long enough time.
Comment 11 Philip Ganchev 2007-05-18 02:37:10 UTC
Also, drawing a line instead of shading will probably work better for old video cards.
Comment 12 Nickolay V. Shmyrev 2008-06-26 20:42:13 UTC
*** Bug 540288 has been marked as a duplicate of this bug. ***
Comment 13 Nickolay V. Shmyrev 2008-09-24 21:48:15 UTC
*** Bug 553275 has been marked as a duplicate of this bug. ***
Comment 14 Joshua Chia 2009-01-08 11:01:21 UTC
I would like to suggest another solution, adding to what Philip's comment #11, in the case of instant (non-smooth) scrolling.

Let's call the part of the document that touches the bottom edge of the viewport the "boundary line".  Right after instant non-smooth scrolling finishes, we briefly flash the boundary line to let the user know where to continue reading. Another approach is to instantly darken the part of the document before the "context-line" and then gradually fade it back in over one second or less.  This second approach differs from the gif in that this one involves instant scrolling.
Comment 15 Mike 2009-03-12 05:08:42 UTC
I see that this has been marked as an enhancement, but as somebody who uses evince for document reading on a daily basis, I want to second the opinion on bug 553275 that says that this bug makes reading a tiresome process. 

That bug, which was marked as a duplicate of this one notes that when you scroll with space bar or page up/down, it doesn't scroll an entire page. It scrolls around 70% of the page, and you have to reorient yourself to where you left off before you scrolled.

It's a real problem for usability that makes evince very difficult to use. I wonder if we can up the priority of this bug or mark that one as not a duplicate, since they are addressing similar but different problems.

I also worry that since the solution proposed here seems programmatically more challenging than the solution needed with the 70% scroll problem, if that means that the 70% scroll problem isn't going to be fixed any time soon.
Comment 16 Mike 2009-03-29 01:01:02 UTC
I'm sorry to come back and post yet another comment on this thread, but there hasn't been any response on my last comment since 3-12, nor does there seem to be any development being done to fix this bug. I know this is a volunteer project, and I wish I were able to fix it myself, but I still wonder if there is anything that can be done to get this bug a higher priority.

Maybe I do more reading with evince than most other people, but this scrolling malfunction is really quite difficult to work with when reading. Here's a screenshot of what I've started doing to cope with it until this bug is fixed.

Essentially, I've set up a terminal with "Always on top" status so that it blocks off the bottom of the screen in evince, thus serving as a horizontal ruler while I'm reading. Users shouldn't have to do this, right?
Comment 17 Mike 2009-03-29 01:03:03 UTC
Created attachment 131605 [details]
Demonstrating the hack I've developed to make evince usable.
Comment 18 Mike 2009-09-28 05:26:48 UTC
It's been almost six months since I last commented on this bug, and this bug has been unresolved for four and a half YEARS!

Reading over it one more time, I'm unsure developers are actually aware of what the problem is.

It sounds like people are proposing that this be fixed by implementing some kind of smooth-scrolling.

The problem however, is that pressing space bar or page-down only scrolls about 70% of the screen, rather than 100%. Fixing that would go a LONG ways towards improving context tracking on scroll.

I'd love to work on this bug if I had the knowledge (it's my number one bug across ALL applications, because it drives me mad for hours every single day). Sadly, I lack the knowledge in this programming language.

Is there anything that can be done to prod somebody into writing up a patch for this? I'm prepared to ship beer - Even internationally.
Comment 19 Wouter Bolsterlee (uws) 2009-09-28 17:36:30 UTC
Comment 20 Wouter Bolsterlee (uws) 2009-09-28 17:53:42 UTC
Created attachment 144192 [details] [review]
Scroll screen completely when using the keyboard
Comment 21 Carlos Garcia Campos 2009-09-28 18:39:12 UTC
See some of the comments on bug #165120 (#16 and #17), I was working on a solution based on leaving one line overlap when there's text or just move one page otherwise. I'm still doing some tests, so I'll let you know as soon as I have something working.
Comment 22 Mike 2009-09-28 18:57:06 UTC
You read my mind Carlos. Looking forward to seeing this fixed! Thanks everybody.
Comment 23 Carlos Garcia Campos 2009-09-30 11:01:12 UTC
Created attachment 144378 [details] [review]
Scroll an screen leaving one line context

I finally managed to get some time to finish the patch. Please, try it out and let me know whether it behaves as you expected or not.
Comment 24 Carlos Garcia Campos 2009-10-07 12:40:54 UTC
Nobody tried it? I've just committed it to git master so that it's easier to test
Comment 25 Mike 2009-10-07 17:08:07 UTC
Sorry, I'd love to, but it's a bit over my head. Is there an easy way to compile and install evince such that it won't override my default installation, and so that I can easily remove it if I want to? 

Whenever I try something outside of the main distro's sources, I end up with two versions, one of which I can't remove.
Comment 26 Mike 2009-10-07 20:23:39 UTC
OK, I spent about three hours trying to get a functioning copy of evince from source. jhbuild is a pain, and installing without it failed repeatedly. Looks like I'm no help. Sorry.
Comment 27 Mike 2009-10-13 03:09:15 UTC
Finally, I got this to work, and used it for a bit today. I'm afraid to say this, but it's inconsistent. 

It works most of the time, but sometimes, the scroll is only about half, or maybe 60% of the page. 

I haven't been able to track down what's causing it to work sometimes, but not all the time, but I'll attach the file I'm using, and you can judge for yourselves. Even if it's buggy though, it is an improvement.
Comment 28 Mike 2009-10-13 03:11:54 UTC
Created attachment 145323 [details]
Doc exhibiting the behavior.

Try hitting space bar three times in this document. I allege that the third time won't work properly.
Comment 29 Carlos Garcia Campos 2009-10-13 15:47:49 UTC
hmm, it seems to be related to multicolumn issues. Thanks for testing Mike.
Comment 30 José Aliste 2009-11-27 15:55:19 UTC

I have some problems with the current state of git master. First, even without multicolum, the context in the scroll is not always well calculated (AFAIK). Carlos, could you please explain with more details what's the intended behavior? 

The scrolling experience is also worse if you are quickly scrolling, i.e., just hold down the down or up key to scroll. In 2.28.2, you get deterministic behavior and you can ``predict'' (by looking at the current page box in the toolbar) when to stop scrolling. It seems that with this patch, it is much more complicated to do that (the current page number in the box does not seem to change in a deterministic way) 
Hope this last paragraph makes some sens to you ;)
Comment 31 Mike 2010-03-09 20:58:01 UTC
Is there something we need to do to get this patch rolled into the next version of Evince? I have been using this patched version for a while on my laptop, but it still hasn't been rolled out properly. 

Are we in the stage where we wait for the distros to pick up the fix, or does something need to be actively done?
Comment 32 Wouter Bolsterlee (uws) 2010-03-09 21:41:23 UTC what about using my trivial patch in comment#21 for the moment? Perhaps it needs a .90 factor to avoid partly shown lines to show partly again after scrolling.
Comment 33 Mike 2010-03-10 00:33:40 UTC
The patch from Carlos has been working for me for months. Can we just roll that in to the next version as soon as possible? Is there a review process we need to do or something?
Comment 34 Carlos Garcia Campos 2010-03-10 08:45:53 UTC
Mike, the patch was already pushed, see:

and it was released in Evince 2.29.1
Comment 35 Mike 2010-03-10 16:55:10 UTC
Excellent. And I see that Ubuntu has a downstream version coming out in Lucid. I'm excited that this will finally be fixed.
Comment 36 Thomas Fitzsimmons 2011-03-02 00:41:16 UTC
I'm using Evince 2.30.3 on Fedora 13 and I'm still seeing this bug.  When only the top-half of the last line is showing at the bottom of the window and I press the space bar, the bottom-half of that (previously) last line is then displayed at the top of the window.  So I never get a chance to fully-read that line.

Also, I have another request.  I would file this as a separate report but I saw that bug 553275 was already closed as a duplicate of this one.  Can you leave two lines of context when scrolling instead of just one?  That's Emacs's default, and the DjVuLibre viewer's default, and it works nicely.  Alternatively could the number of context lines be configurable over a reasonable range, say 0 through 4?
Comment 37 GNOME Infrastructure Team 2018-05-22 12:55:50 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: