sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx | 6 ++ sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx | 39 ++++++++----- 2 files changed, 31 insertions(+), 14 deletions(-)
New commits: commit 8056d92635dd1cb03798d4691611d2484bf680af Author: Andre Fischer <a...@apache.org> Date: Wed Jul 11 11:17:48 2012 +0000 Resolves: #i118813# Update slide sorter after page format is modified (cherry picked from commit b8f5370aeea74b68333885450f7ec34918c1d8c8) Conflicts: sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx Change-Id: I42553defdce1636190e8c5c226774135e179e25d diff --git a/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx b/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx index 67de31c..3f73b56 100644 --- a/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx +++ b/sd/source/ui/slidesorter/inc/view/SlsPageObjectPainter.hxx @@ -122,6 +122,12 @@ private: const BitmapEx& rOverlay, const OutputDevice* pReferenceDevice) const; void InvalidateBitmaps (void); + + /** Update the local pointer to the page object layouter to the + one owned by the general layouter. + Return <TRUE/> when after the call we have a valid page object layouter. + */ + bool UpdatePageObjectLayouter (void); }; } } } // end of namespace sd::slidesorter::view diff --git a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx index 9bf75e6..c20acf9 100644 --- a/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx +++ b/sd/source/ui/slidesorter/view/SlsPageObjectPainter.cxx @@ -82,26 +82,37 @@ void PageObjectPainter::PaintPageObject ( OutputDevice& rDevice, const model::SharedPageDescriptor& rpDescriptor) { + if (UpdatePageObjectLayouter()) + { + // Turn off antialiasing to avoid the bitmaps from being + // shifted by fractions of a pixel and thus show blurry edges. + const sal_uInt16 nSavedAntialiasingMode (rDevice.GetAntialiasing()); + rDevice.SetAntialiasing(nSavedAntialiasingMode & ~ANTIALIASING_ENABLE_B2DDRAW); + + PaintBackground(rDevice, rpDescriptor); + PaintPreview(rDevice, rpDescriptor); + PaintPageNumber(rDevice, rpDescriptor); + PaintTransitionEffect(rDevice, rpDescriptor); + + rDevice.SetAntialiasing(nSavedAntialiasingMode); + } +} + + + + +bool PageObjectPainter::UpdatePageObjectLayouter (void) +{ // The page object layouter is quite volatile. It may have been replaced // since the last call. Update it now. mpPageObjectLayouter = mrLayouter.GetPageObjectLayouter(); if ( ! mpPageObjectLayouter) { OSL_ASSERT(mpPageObjectLayouter); - return; + return false; } - - // Turn off antialiasing to avoid the bitmaps from being shifted by - // fractions of a pixel and thus show blurry edges. - const sal_uInt16 nSavedAntialiasingMode (rDevice.GetAntialiasing()); - rDevice.SetAntialiasing(nSavedAntialiasingMode & ~ANTIALIASING_ENABLE_B2DDRAW); - - PaintBackground(rDevice, rpDescriptor); - PaintPreview(rDevice, rpDescriptor); - PaintPageNumber(rDevice, rpDescriptor); - PaintTransitionEffect(rDevice, rpDescriptor); - - rDevice.SetAntialiasing(nSavedAntialiasingMode); + else + return true; } @@ -112,7 +123,7 @@ void PageObjectPainter::NotifyResize (const bool bForce) mpPageObjectLayouter = mrLayouter.GetPageObjectLayouter(); if (bForce || ! mpPageObjectLayouter) InvalidateBitmaps(); - else + else if (UpdatePageObjectLayouter()) { const Size aSize (mpPageObjectLayouter->GetSize( PageObjectLayouter::FocusIndicator, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits