Summary: | when open pdf by hyperlink from another pdf it's not displayed in the main window | ||
---|---|---|---|
Product: | [Unmaintained] kpdf | Reporter: | Ilia K. <mail4ilia> |
Component: | general | Assignee: | Albert Astals Cid <aacid> |
Status: | RESOLVED FIXED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 0.4 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Ilia K.
2005-06-04 11:31:51 UTC
Some additions: as opposite to hyperlinks inside the same file, when jumping by hyperlink to another file, "Back" (or "Previous") arrow is not available (looks grey) Answer to bug: I'm looking at it, it's strange since it was working, but i supose a fix to fix other bug made this not work. About other bugs obviously report them to bugzilla but PLEASE check that they are not already filled (like the forms support). About comment #1: This is a completely different thing, and i don't even think it is a bug but a wish. SVN commit 422023 by aacid: 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 M +1 -0 part.rc M +18 -12 ui/pageview.cpp --- trunk/KDE/kdegraphics/kpdf/part.rc #422022:422023 @@ -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"/> --- trunk/KDE/kdegraphics/kpdf/ui/pageview.cpp #422022:422023 @@ -263,9 +263,13 @@ 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,18 +908,20 @@ const KPDFLink * link = static_cast< const KPDFLink * >( linkRect->pointer() ); d->document->processLink( link ); } - - imageRect = pageItem->page()->hasObject( ObjectRect::Image, nX, nY ); - if ( imageRect ) + else { - // handle click over a image + // 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 ); + } } - - if (!linkRect && !imageRect) - { - // if not on a rect, the click selects the page - d->document->setViewportPage( pageItem->pageNumber(), PAGEVIEW_ID ); - } } else if ( rightButton ) { |