Ubuntu

Activate smooth scrolling in Evince [SRU]

Reported by Chow Loong Jin on 2012-04-13
116
This bug affects 25 people
Affects Status Importance Assigned to Milestone
Evince
New
Medium
evince (Ubuntu)
Wishlist
Unassigned
Precise
Wishlist
Unassigned
Quantal
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.

Chow Loong Jin (hyperair) wrote :

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

Chow Loong Jin (hyperair) wrote :

Upstream patch as submitted to BGO.

Chow Loong Jin (hyperair) wrote :

And here's a new debdiff

Changed in evince:
importance: Unknown → Medium
status: Unknown → New
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
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
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

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?

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

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.

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

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?

Chow Loong Jin (hyperair) wrote :

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

Didier Roche (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
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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