Activate smooth scrolling in Evince [SRU]

Bug #981248 reported by Chow Loong Jin
114
This bug affects 25 people
Affects Status Importance Assigned to Milestone
Evince
Fix Released
Medium
evince (Ubuntu)
Fix Released
Wishlist
Unassigned
Precise
Won't Fix
Wishlist
Unassigned
Quantal
Won't Fix
Wishlist
Unassigned

Bug Description

[Problem]
Gtk+ 3.3.18 introduced smooth scrolling via the GDK_SCROLL_SMOOTH event, which
is activated by default for most widgets, but opt-in for custom widgets that
handle scroll events themselves.

Evince's document view is a custom widget that does not have GDK_SMOOTH_SCROLL_MASK in its enabled events mask, and as such does not benefit from this. This results in a rather jarring behaviour in scrolling experience from the rest of the Gtk3 applications using GtkScrolledWindow, and also from the scrolling experience in the thumbnail view.

[Impact]
This bug affects all touchpad users in Precise. Touchscreen users may also be affected.

[Development Fix]
Not fixed.

[Stable Fix]
Upstream patch is currently under review in the upstream bugtracker. Once that patch is accepted, I will update the debdiff.

[Text Case]
1. Open a multipage document in Evince
2. Open the thumbnail view
3. Scroll in the thumbnail view using a touchpad's scroll implementation (circular, side scrolling, or two finger scrolling)
4. Notice that the scrolling is smooth, without the jerky behaviour present in Gtk2 applications and applications in previous Ubuntu releases.
5. Repeat #3 in the document view
6. Notice that scrolling is jerky, like the behaviour in previous releases.

[Regression Potential]
There isn't much regression potential, as the codepath for smooth scrolling in GtkScrolledWindow has already been activated by default for all Gtk3 applications and is well tested in Precise.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

Removed patches as they are incorrect. I will upload a fixed set of patches shortly.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

Upstream patch as submitted to BGO.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

And here's a new debdiff

Changed in evince:
importance: Unknown → Medium
status: Unknown → New
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thanks for your work, the patch got through some review iteration upstream so I guess we should update the debdiff before uploading, anyway it's rather SRU material,next cycle than hard freeze upload so no hurry

Changed in evince (Ubuntu):
importance: Undecided → Wishlist
status: Confirmed → Triaged
Revision history for this message
Bryce Harrington (bryce) wrote :

Heya, first off, thanks for this contribution to the LTS, it's much
appreciated!

As it happens, Ubuntu Precise has now progressed into Final Freeze.
Right now changes to the distro are limited to just ultra-critical
release bugs that the release team has flagged as priorities. Most
other bugs, including this one, need to now be handled as Stable
Release Updates (SRUs) or left until the next release (Q-series) opens
for development.

For reference, here is the SRU Policy Doc:
  https://wiki.ubuntu.com/StableReleaseUpdates

I've looked at your patch and think it may qualify as an SRU, but
there's a bit extra paperwork, which helps establish the justification
for the change and makes the change easier for reviewers. Would you
mind helping by filling in some blanks?

I've pasted in the standard SRU template into the bug description.
Click the yellow pencil icon to the right of 'Bug Description', and fill
in the empty sections.

Also, while the patch itself looks ok, there are a few changes necessary
to target it as an SRU:

 1. In the changelog entry, target the upload to 'precise-proposed'
    rather than just 'precise'.

 2. The version number should increment by a point rather than a full
    number. Examples:

     Currently in precise Proposed for precise-proposed
     foobar-1.2-1 ---> foobar-1.2-1ubuntu0.1
     foobar-1.2-1ubuntu2 ---> foobar-1.2-1ubuntu2.1
     foobar-1.2~dfsg.1-1 ---> foobar-1.2~dfsg.1-1ubuntu0.1
     foobar-1.2-1ubuntu1.5 ---> foobar-1.2-1ubuntu1.6

 3. Make certain the correct bug # is listed in the changelog entry
    description, in this format: (LP: #123456)

 4. Doublecheck the maintainer is set to Ubuntu. Easy to do, just run
    `update-maintainer` and it'll fix it.

Finally, doublecheck that the patch has been forwarded upstream (as
appropriate), and that it's included in the version that will be in
Ubuntu Q-series.

description: updated
summary: - Activate smooth scrolling in Evince
+ Activate smooth scrolling in Evince [SRU]
Changed in evince (Ubuntu Precise):
status: Triaged → Incomplete
milestone: none → precise-updates
Revision history for this message
Bryce Harrington (bryce) wrote :

Please re-subscribe the ubuntu-sponsors team to the bug report once the above has been done.

description: updated
description: updated
Revision history for this message
Mattthew Russell (matthewjohnrussell) wrote :

How come you can smooth-scroll the document by scrolling over the scrollbar? Does this handle the scroll event itselft, separately from the document view?

Revision history for this message
Chow Loong Jin (hyperair) wrote : Re: [Bug 981248] Re: Activate smooth scrolling in Evince [SRU]

On 28/04/2012 01:13, Mattthew Russell wrote:
> How come you can smooth-scroll the document by scrolling over the
> scrollbar? Does this handle the scroll event itselft, separately from
> the document view?

Er, I'm not sure I understand what you mean. The test case mentioned to scroll
over the document view using a touch device, e.g. by circular scrolling, edge
scrolling, or two-finger scrolling.

On a default Ubuntu installation with overlay scrollbar installed, using the
touchpad scrolling on the scrollbar does not yield smooth scrolling. The overlay
scrollbar itself would have to be fixed for that to work. That said, if your
mouse is over the overlay scrollbar scrubber thing, you're probably clicking the
buttons or dragging it around, rather than using touch scrolling.

--
Kind regards,
Loong Jin

Revision history for this message
Mattthew Russell (matthewjohnrussell) wrote :

I do mean scrolling with the touchpad, in my case edge scrolling, over the default GTK scrollbar. I haven't tried it with the overlay scrollbar.

The result of edge scrolling over the GTK scrollbar in evince is that the document smoothly scrolls, whereas edge scrolling a few pixels to the left over the document makes the document scroll in larger jumps.

Revision history for this message
Chow Loong Jin (hyperair) wrote :

On 28/04/2012 09:21, Mattthew Russell wrote:
> I do mean scrolling with the touchpad, in my case edge scrolling, over
> the default GTK scrollbar. I haven't tried it with the overlay
> scrollbar.
>
> The result of edge scrolling over the GTK scrollbar in evince is that
> the document smoothly scrolls, whereas edge scrolling a few pixels to
> the left over the document makes the document scroll in larger jumps.

Ah, that. The scrollbar belongs to the GtkScrolledWindow widget which is what
implements the whole smooth scrolling bits. The problem is that the document
view which resides inside the GtkScrolledWindow isn't accepting (and forwarding)
the smooth scrolling events required for smooth scrolling to work.

--
Kind regards,
Loong Jin

Revision history for this message
Sebastien Bacher (seb128) wrote :

do you still plan to work on that? seems like upstream is mostly happy with your patch and waiting on tweaks?

Revision history for this message
Chow Loong Jin (hyperair) wrote :

Sorry, I hadn't noticed upstream's last comment and was still waiting for a response.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Seems to late IMHO for 12.10 now, let's see if we can get it next cycle

tags: added: rls-q-notfixing
Changed in evince (Ubuntu):
status: Incomplete → Fix Released
Changed in evince (Ubuntu Quantal):
status: Incomplete → Won't Fix
Changed in evince (Ubuntu):
milestone: precise-updates → none
Changed in evince:
status: New → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote :

The Precise Pangolin has reached end of life, so this bug will not be fixed for that release

Changed in evince (Ubuntu Precise):
status: Incomplete → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.