summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2009-12-11 10:57:41 +0000
committerOliver Bolte <obo@openoffice.org>2009-12-11 10:57:41 +0000
commit039fa47b6ed780eb99bcd330aae8a548f45d6ebc (patch)
tree52673b65da70879d7847bbbcb5699f085493e278
parent7f8a85b3eb5448ca716f17131872a740f4bec454 (diff)
CWS-TOOLING: integrate CWS ooo32gsl09
2009-12-07 16:21:13 +0100 tl r277744 : #i105988# accessibility crash 2009-12-07 14:59:17 +0100 od r277743 : #i107365# method <ViewShell::ImplEndAction(..)> - take care of transparent child windows after direct paint. 2009-12-07 12:22:08 +0100 fs r277739 : #i107485# 2009-12-04 15:28:51 +0100 pl r277736 : #i107358# fix uninitialized value (thanks cmc) 2009-12-04 15:24:57 +0100 pl r277735 : #i106833# fix subset font encoding
-rw-r--r--sw/source/core/view/viewsh.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index fa038871c0..17fe093f6b 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -376,6 +376,37 @@ void ViewShell::ImplEndAction( const BOOL bIdleEnd )
// #i75172# end DrawingLayer paint
DLPostPaint2(true);
}
+
+ // --> OD 2009-12-03 #i107365#
+ // Direct paint has been performed. Thus, take care of
+ // transparent child windows.
+ if ( GetWin() )
+ {
+ Window& rWindow = *(GetWin());
+ if(rWindow.IsChildTransparentModeEnabled() && rWindow.GetChildCount())
+ {
+ const Rectangle aRectanglePixel(rWindow.LogicToPixel(aRect.SVRect()));
+
+ 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(aRectanglePixel) )
+ {
+ pCandidate->Invalidate( INVALIDATE_NOTRANSPARENT|INVALIDATE_CHILDREN );
+ pCandidate->Update();
+ }
+ }
+ }
+ }
+ }
+ // <--
}
delete pVout;