Bug 321212 - Middle mouse pressing in a form makes the rendering go crazy
Summary: Middle mouse pressing in a form makes the rendering go crazy
Status: RESOLVED FIXED
Alias: None
Product: okular
Classification: Applications
Component: PDF backend (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-16 07:40 UTC by Jaime Torres
Modified: 2013-08-06 20:02 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 4.11.0
Sentry Crash Report:


Attachments
the screenshot (73.30 KB, image/png)
2013-06-16 12:05 UTC, Jaime Torres
Details
a sample calligra words text that makes the trick for me. (4.86 KB, application/vnd.oasis.opendocument.text)
2013-06-17 06:50 UTC, Jaime Torres
Details
the pdf file for posterity (1.19 MB, application/octet-stream)
2013-06-23 16:16 UTC, Albert Astals Cid
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jaime Torres 2013-06-16 07:40:58 UTC
Using a PDF with forms, like http://www.bankia.com/recursos/doc/corporativo/20130417/preferentes/formulario-de-solicitud-para-acudir-al-arbitraje-de-preferentes-y-deuda-subordin.pdf
I have the text edited in calligra words, just copy/paste a long text to the big text form in the pdf, and the render goes crazy, just move around the pdf. If this does not happen the first copy/paste, repeat 2 or 3 times.

Reproducible: Always

Steps to Reproduce:
1. open a pdf with forms
2. fill the forms using copy/paste (especially if the copied text has bold/underscore....
3. show/hide forms and move around the pdf
Comment 1 Jaime Torres 2013-06-16 07:42:22 UTC
I forgot, Zooming the document also helps.
Comment 2 Albert Astals Cid 2013-06-16 11:22:02 UTC
Can you provide a screenshto of the "crazy" effect? Also if you could provide the document you're using to copy&paste it'd be great, i tried and could not reproduce any weirdness.
Comment 3 Jaime Torres 2013-06-16 12:05:44 UTC
Created attachment 80549 [details]
the screenshot

After pasting, just look around the document...
Comment 4 Jaime Torres 2013-06-16 20:42:22 UTC
Probably related to this valgrind error (reproduced under valgrind):

==15562== Mismatched free() / delete / delete []
==15562==    at 0x4C2AA9C: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15562==    by 0x1D358B8C: TextStringToUCS4(GooString*, unsigned int**) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D37D029: ActualText::end(GfxState*) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D3046E0: Gfx::opEndMarkedContent(Object*, int) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D305EC3: Gfx::go(bool) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D30632F: Gfx::display(Object*, bool) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D347CAB: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1CFCAED9: Poppler::Page::textList(Poppler::Page::Rotation) const (in /usr/lib64/libpoppler-qt4.so.4.2.0)
==15562==    by 0x1CD1D380: PDFGenerator::textPage(Okular::Page*) (generator_pdf.cpp:1047)
==15562==    by 0x17037AC1: Okular::TextPageGenerationThread::run() (generator_p.cpp:103)
==15562==    by 0x7247130: QThreadPrivate::start(void*) (qthread_unix.cpp:338)
==15562==    by 0x76B7E0D: start_thread (in /lib64/libpthread-2.17.so)
==15562==  Address 0x12e87c40 is 0 bytes inside a block of size 4 alloc'd
==15562==    at 0x4C2B537: operator new[](unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15562==    by 0x1D358B49: TextStringToUCS4(GooString*, unsigned int**) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D37D029: ActualText::end(GfxState*) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D3046E0: Gfx::opEndMarkedContent(Object*, int) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D305EC3: Gfx::go(bool) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D30632F: Gfx::display(Object*, bool) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1D347CAB: Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) (in /usr/lib64/libpoppler.so.37.0.0)
==15562==    by 0x1CFCAED9: Poppler::Page::textList(Poppler::Page::Rotation) const (in /usr/lib64/libpoppler-qt4.so.4.2.0)
==15562==    by 0x1CD1D380: PDFGenerator::textPage(Okular::Page*) (generator_pdf.cpp:1047)
==15562==    by 0x17037AC1: Okular::TextPageGenerationThread::run() (generator_p.cpp:103)
==15562==    by 0x7247130: QThreadPrivate::start(void*) (qthread_unix.cpp:338)
==15562==    by 0x76B7E0D: start_thread (in /lib64/libpthread-2.17.so)
Comment 5 Albert Astals Cid 2013-06-16 21:00:58 UTC
Not really, that error can't cause anything like what you're seeing.

Still waiting for the file you copy&paste from, since copy&paste from kate does not caus any weirdness here.
Comment 6 Jaime Torres 2013-06-17 06:50:44 UTC
Created attachment 80574 [details]
a sample calligra words text that makes the trick for me.

What I do: Just select all the text with the mouse, then paste it in the pdf with the middle mouse, then move within the pdf using the scrollbars.
Comment 7 Albert Astals Cid 2013-06-23 16:14:25 UTC
This is weird, it happens only if you paste with the middle mouse but not if you Ctrl+V

Can you confirm that?
Comment 8 Albert Astals Cid 2013-06-23 16:16:28 UTC
Created attachment 80735 [details]
the pdf file for posterity
Comment 9 Jaime Torres 2013-06-23 20:09:39 UTC
Yes, I can confirm it only happens with the middle mouse.
Comment 10 Christoph Feck 2013-07-11 22:59:28 UTC
If I understand the discussion correctly, this bug should be marked confirmed?
Comment 11 Albert Astals Cid 2013-07-14 23:46:13 UTC
Right
Comment 12 Albert Astals Cid 2013-08-05 21:50:21 UTC
Updated the title to reflect that is not only big texts that make it go crazy, they help, but any middle mouse paste makes the thing go crazy for me
Comment 13 Albert Astals Cid 2013-08-06 20:02:02 UTC
Git commit 45dc1990ebca66c2529bf7dd206a9862ade2dd0e by Albert Astals Cid.
Committed on 06/08/2013 at 20:01.
Pushed by aacid into branch 'KDE/4.11'.

Don't keep track of middle mouse press in a variable

This fixes the rendering problem in 321212. Why? Because what was happening is that for some reason the middle mouse press to gets to the PageView but not the release, this meant that the PageView got stuck into mouseMidZooming mode and all sort of bad things happened. Now since we don't cache if the mid mouse button is pressed (we just query it when needed) everything is better.

Ideally i'd like to know why we get the press and not the release, but not sure that's feasible to "fix".
REVIEW: 111901
FIXED-IN: 4.11.0

M  +5    -9    ui/pageview.cpp

http://commits.kde.org/okular/45dc1990ebca66c2529bf7dd206a9862ade2dd0e