Commit 37f510a3 authored by Albert Astals Cid's avatar Albert Astals Cid

Fix crash on documents like the one on 106767, we must not check for a...

Fix crash on documents like the one on 106767, we must not check for a imagelink if we found a normal link that points to another document because the imagelink does not exists anymore, this was not present on 3.4 but yes on 3.4.1, backporting on a moment
Fix bug on 106767, need to relayout the pages when opening a document
Enrico please check that both things are "correct" and if they are remove the TODO i added for you ;-)
BUGS: 106767
CCMAIL: rosenric@dei.unipd.it

svn path=/trunk/KDE/kdegraphics/kpdf/; revision=422023
parent 12e6eefc
......@@ -15,6 +15,7 @@
<Action name="presentation"/>
<Separator/>
<Action name="zoom_in"/>
<Action name="zoom_to" />
<Action name="zoom_out"/>
<Action name="zoom_fit_width"/>
<Action name="zoom_fit_page"/>
......
......@@ -263,9 +263,13 @@ void PageView::notifySetup( const QValueVector< KPDFPage * > & pageSet, bool doc
for ( ; setIt != setEnd; ++setIt )
d->items.push_back( new PageViewItem( *setIt ) );
// invalidate layout so relayout/repaint will happen on next viewport change
if ( pageSet.count() > 0 )
d->dirtyLayout = true;
// TODO for Enrico: Check if doing always the slotRelayoutPages() is not
// suboptimal in some cases, i'd say it is not but a recheck will not hurt
// Need slotRelayoutPages() here instead of d->dirtyLayout = true
// because opening a pdf from another pdf will not trigger a viewportchange
// so pages are never relayouted
slotRelayoutPages();
else
resizeContents( 0, 0 );
......@@ -904,17 +908,19 @@ void PageView::contentsMouseReleaseEvent( QMouseEvent * e )
const KPDFLink * link = static_cast< const KPDFLink * >( linkRect->pointer() );
d->document->processLink( link );
}
imageRect = pageItem->page()->hasObject( ObjectRect::Image, nX, nY );
if ( imageRect )
{
// handle click over a image
}
if (!linkRect && !imageRect)
else
{
// if not on a rect, the click selects the page
d->document->setViewportPage( pageItem->pageNumber(), PAGEVIEW_ID );
// a link can move us to another page or even to another document, there's no point in trying to process the click on the image once we have processes the click on the link
imageRect = pageItem->page()->hasObject( ObjectRect::Image, nX, nY );
if ( imageRect )
{
// handle click over a image
}
else
{
// if not on a rect, the click selects the page
d->document->setViewportPage( pageItem->pageNumber(), PAGEVIEW_ID );
}
}
}
else if ( rightButton )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment