Discussion:
[okular] [Bug 400890] New: Touching file moves the view port
Oliver Sander
2018-11-09 21:49:51 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

Bug ID: 400890
Summary: Touching file moves the view port
Product: okular
Version: 1.3.0
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: okular-***@kde.org
Reporter: ***@tu-dresden.de
Target Milestone: ---

The following phenomenon is a minor annoyance when using Okular & LaTeX to
construct presentations. It happens every time.

STEPS TO REPRODUCE
1. Open a multi-page pdf document, not on the first page
2. Go to presentation mode
3. Leave presentation mode (by pressing Esc)
4. Observe that the top of the current page aligns with the top of the
viewport.
5. Touch the file

OBSERVED RESULT
The document moves such that the top of the current page is now near the center
of the viewport.

EXPECTED RESULT
The document should not move.
--
You are receiving this mail because:
You are the assignee for the bug.
David Hurka
2018-11-10 00:48:55 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

--- Comment #1 from David Hurka <***@mailbox.org> ---
Reproduced with:
Okular Version: 5.1.2
Operating System: KDE neon 5.13
KDE Plasma Version: 5.14.0
Qt Version: 5.11.1
KDE Frameworks Version: 5.50.0

Happens only with continuous mode on; but with different zooms.
--
You are receiving this mail because:
You are the assignee for the bug.
Nate Graham
2018-11-13 15:37:26 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

Nate Graham <***@kde.org> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |***@kde.org
--
You are receiving this mail because:
You are the assignee for the bug.
Tobias Deiminger
2018-11-17 09:14:47 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

Tobias Deiminger <***@posteo.de> changed:

What |Removed |Added
----------------------------------------------------------------------------
Ever confirmed|0 |1
CC| |***@posteo.de
Status|REPORTED |CONFIRMED

--- Comment #2 from Tobias Deiminger <***@posteo.de> ---
I researched this for a while, and hope I understand what was going on.
Basically, your steps to reproduce cause a notifyViewportChanged event (on
presentation mode enter) followed by a slotRelayoutPages event (on reload due
to touching the file). rePos.enabled is false in both cases, so default
coordinates must be calculated, but this calculation is different for the two
events. Therefore the document moves.

Could you please try the patch at https://phabricator.kde.org/D16941 and tell
if it fixes the problem for you?
--
You are receiving this mail because:
You are the assignee for the bug.
Oliver Sander
2018-11-17 20:14:50 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

--- Comment #3 from Oliver Sander <***@tu-dresden.de> ---
It *almost* fixes the issue. Now, when I leave presentation mode the top of
the viewport is the bottom of the previous page, i.e., I can see the entire
grey horizontal stripe between the current page and the previous one. That is
perfectly fine.

However, when I call 'touch' on the file now, the viewport moves up just a few
pixels. I can now see the very bottom of the previous page.

Weirdly enough, I can then scroll up by calling 'touch' repeatedly. Every
'touch' moves the viewport a little bit upwards.
--
You are receiving this mail because:
You are the assignee for the bug.
Oliver Sander
2018-11-17 20:23:56 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

--- Comment #4 from Oliver Sander <***@tu-dresden.de> ---
Hmm, now I can't reproduce the 'scrolling' part of the previous post anymore...
not sure what's happening.
--
You are receiving this mail because:
You are the assignee for the bug.
Tobias Deiminger
2018-11-29 20:42:14 UTC
Permalink
https://bugs.kde.org/show_bug.cgi?id=400890

--- Comment #5 from Tobias Deiminger <***@posteo.de> ---
Git commit a29e4eaff5889eee632ce93c2e6a313cd9c011a1 by Tobias Deiminger.
Committed on 29/11/2018 at 20:41.
Pushed by tobiasdeiminger into branch 'Applications/18.12'.

Fix inconsistent viewport positioning in PageView

Summary:
This diff unifies the calculation of the viewport position from a given
DocumentViewport. PageView::notifyViewportChanged and
PageView::slotRelayoutPages used to handle it differntly, which resulted in
viewport jumps for no reason.

It happened in various situations, e.g. when jumping to a page using the footer
page navigation, or when reloading the document after presentation mode left,
or when resizing the main window after presentation mode left.

The diff selects the notifyViewportChanged way (align viewport top border with
page top margin) as golden behavior in case of rePos.enabled == false.
Related: bug 357958, bug 341939

341939 and 400890 are fixed partially. These two still suffer from a minor
displacement that happens when finished signal arrives from pixmap generation
thread.

Test Plan:
- When using the footer page navigation to jump to different pages, new page
top is always algined with viewport top.
- After changing page with footer page navigation, press F5 to reload. Page top
stays aligned with viewport top.
- When exiting presentation mode, and touching the file, page top stays aligned
with viewport top.
- When exiting presentation mode, and changing main window size, page top stays
aligned with viewport top.

Reviewers: #okular, sander

Reviewed By: sander

Subscribers: ngraham, sander, aacid, okular-devel

Tags: #okular

Differential Revision: https://phabricator.kde.org/D16941

A +- -- autotests/data/simple-multipage.pdf
A +82 -0 autotests/data/simple-multipage.tex
M +30 -0 autotests/parttest.cpp
M +37 -30 ui/pageview.cpp
M +1 -0 ui/pageview.h

https://commits.kde.org/okular/a29e4eaff5889eee632ce93c2e6a313cd9c011a1
--
You are receiving this mail because:
You are the assignee for the bug.
Loading...