diff --git a/dviRenderer.cpp b/dviRenderer.cpp index 2fe398383..38f8727de 100644 --- a/dviRenderer.cpp +++ b/dviRenderer.cpp @@ -160,6 +160,12 @@ RenderedDocumentPagePixmap* dviRenderer::drawPage(const JobId& id) globalColor = Qt::black; SimplePageSize ps = sizeOfPage(page->getPageNumber()); + if (!ps.isValid()) + { + RenderedDviPagePixmap* DVIpage = static_cast(page); + ps = DVIpage->customPageSize; + } + int pageHeight = ps.sizeInPixel(resolution).height(); int pageWidth = ps.sizeInPixel(resolution).width(); page->resize(pageWidth, pageHeight); diff --git a/kdvi_multipage.cpp b/kdvi_multipage.cpp index b9b430620..0eca4f09c 100644 --- a/kdvi_multipage.cpp +++ b/kdvi_multipage.cpp @@ -412,8 +412,12 @@ DocumentWidget* KDVIMultiPage::createDocumentWidget(PageView *parent, DocumentPa RenderedDocumentPagePixmap* KDVIMultiPage::createDocumentPagePixmap(JobId id) const { - RenderedDocumentPagePixmap* page = new RenderedDviPagePixmap(id); + RenderedDviPagePixmap* page = new RenderedDviPagePixmap(id); page->setupObservers(dataModel); + + // Needed for DVI files without a papersize-special + page->customPageSize = dataModel->userPreferredPageSize(); + return page; } diff --git a/renderedDviPagePixmap.h b/renderedDviPagePixmap.h index 5e2745858..96567acb1 100644 --- a/renderedDviPagePixmap.h +++ b/renderedDviPagePixmap.h @@ -44,6 +44,8 @@ class RenderedDviPagePixmap : public RenderedDocumentPagePixmap generated when the current page is drawn. */ Q3ValueVector sourceHyperLinkList; + + SimplePageSize customPageSize; }; #endif