svx/source/sdr/overlay/overlaymanagerbuffered.cxx | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-)
New commits: commit d7e10cc71cd40ad84294f992f5d7e3c7c915e305 Author: Michael Stahl <mst...@redhat.com> Date: Mon Jun 24 19:05:45 2013 +0200 fdo#60444: Revert "fdo#58029 - substantially accelerate re-rendering..." This reverts commit 6c98ad71478cb72b51634b32d6e553ccaec30190. This breaks selection of transparent form controls (fdo#60444), because the Update method is not called on the children. Change-Id: Id0b6a34a15aa1ed7bd5aa0d7b5626e60bee57e30 (cherry picked from commit f022f39638fbe970f1b839c757dcccd3baa69445) Reviewed-on: https://gerrit.libreoffice.org/4487 Reviewed-by: Thorsten Behrens <tbehr...@suse.com> Tested-by: Thorsten Behrens <tbehr...@suse.com> diff --git a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx index 81b53b2..133accc 100644 --- a/svx/source/sdr/overlay/overlaymanagerbuffered.cxx +++ b/svx/source/sdr/overlay/overlaymanagerbuffered.cxx @@ -348,15 +348,28 @@ namespace sdr if(bTargetIsWindow) { Window& rWindow = static_cast< Window& >(rmOutputDevice); - if(rWindow.IsChildTransparentModeEnabled()) + + if(rWindow.IsChildTransparentModeEnabled() && rWindow.GetChildCount()) { - // Get VCL to invalidate it's children - more efficiently. fdo#58029 const Rectangle aRegionRectanglePixel( maBufferRememberedRangePixel.getMinX(), maBufferRememberedRangePixel.getMinY(), maBufferRememberedRangePixel.getMaxX(), maBufferRememberedRangePixel.getMaxY()); - rWindow.Invalidate(aRegionRectanglePixel, - INVALIDATE_NOTRANSPARENT|INVALIDATE_CHILDREN|INVALIDATE_UPDATE); + for(sal_uInt16 a(0); a < rWindow.GetChildCount(); a++) + { + Window* pCandidate = rWindow.GetChild(a); + + if(pCandidate && pCandidate->IsPaintTransparent()) + { + const Rectangle aCandidatePosSizePixel(pCandidate->GetPosPixel(), pCandidate->GetSizePixel()); + + if(aCandidatePosSizePixel.IsOver(aRegionRectanglePixel)) + { + pCandidate->Invalidate(INVALIDATE_NOTRANSPARENT|INVALIDATE_CHILDREN); + pCandidate->Update(); + } + } + } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits