[okular] [Bug 388458] New: Wrong size of rectangles around annotation icons (e.g. popup note) for PDF documents

Tobias Deiminger bugzilla_noreply at kde.org
Tue Jan 2 13:24:08 UTC 2018


https://bugs.kde.org/show_bug.cgi?id=388458

            Bug ID: 388458
           Summary: Wrong size of rectangles around annotation icons (e.g.
                    popup note) for PDF documents
           Product: okular
           Version: 1.3.0
          Platform: Compiled Sources
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: PDF backend
          Assignee: okular-devel at kde.org
          Reporter: haxtibal at posteo.de
  Target Milestone: ---

This is reproducible with almost any PDF document. If you left click on an
annotation icon, or while moving the icon around with the mouse, rectangles are
drawn around the icon. These rectangles are too big or too small in most cases.
How, and how much they misfits depends on PDF page size and on screen DPI. Only
in rare cases the rectangle fits exactly with the icon rendered by Poppler.

The problem is closely related to https://bugs.kde.org/show_bug.cgi?id=387639.
I filed a second bug do describe the PDF specific part of the issue, while
#387639 describes the hidpi specific part.

Here is a summary for why this happens:
-Okulars PickPointEngine creates linked TextAnnotations with a hardcoded width
of 0.03 (a normalized value, where 1 means full page width) [1]
-Poppler ignores the size right away and forces it to hardcoded 24x24 pts ==
0.33x0.33 inch [2]
-to draw the rectangle, Okular denormalizes the value 0.03 from above to page
width in screen pixels [3], [4]
-therefore the rectangle size depends on current DPI and PDF page size in pts,
while the icon rendered by poppler is independent from both

I'll share a patch on Phabricator soon which fixes the bug for me, and probably
fixes #387639 too (can't test the latter due to lacking hidpi setup).

Yet another part of the issue is that Poppler silently ignores what
applications set in Poppler::Annotation::setBoundary. This should IMHO get
fixed at Poppler side, or at least should be clarified why forcing 24x24 pts
was necessary. We can only work around it in Okular.

[1]
https://cgit.kde.org/okular.git/tree/ui/pageviewannotator.cpp?h=Applications/17.12#n213
[2]
https://cgit.freedesktop.org/poppler/poppler/tree/poppler/Annot.cc?h=poppler-0.62.0#n2469
[3]
https://cgit.kde.org/okular.git/tree/ui/pagepainter.cpp?h=Applications/17.12#n805
[4]
https://cgit.kde.org/okular.git/tree/ui/pageviewmouseannotation.cpp?h=Applications/17.12#n271

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Okular-devel mailing list