diff options
author | Stephan Schäfer <ssa@openoffice.org> | 2001-07-25 16:33:23 +0000 |
---|---|---|
committer | Stephan Schäfer <ssa@openoffice.org> | 2001-07-25 16:33:23 +0000 |
commit | dfad4dda7686515427c252a667a9fd91793e5224 (patch) | |
tree | ecd74887602b1d7a92bbd34b1f6b93e5a72b7414 /vcl | |
parent | 6cd1172ed2c8bee00f1f697432b6e565190f07eb (diff) |
#90232# no cursorect update in eventhandler
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/winproc.cxx | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx index 01815e77ac39..c274320a62b9 100644 --- a/vcl/source/window/winproc.cxx +++ b/vcl/source/window/winproc.cxx @@ -2,9 +2,9 @@ * * $RCSfile: winproc.cxx,v $ * - * $Revision: 1.28 $ + * $Revision: 1.29 $ * - * last change: $Author: ssa $ $Date: 2001-07-18 12:06:56 $ + * last change: $Author: ssa $ $Date: 2001-07-25 17:33:23 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -1253,6 +1253,8 @@ static void ImplHandleExtTextInputPos( Window* pWindow, aSize.Width() = pChild->GetSettings().GetStyleSettings().GetCursorSize(); rRect = Rectangle( aPos, aSize ); } + else + rRect = Rectangle( Point( pChild->mnOutOffX, pChild->mnOutOffY ), Size() ); } rInputWidth = pChild->ImplLogicWidthToDevicePixel( pChild->GetCursorExtTextInputWidth() ); if ( !rInputWidth ) @@ -1952,6 +1954,8 @@ void ImplUpdateCursorRect( Window *pWindow ) RmFrameWindow *pFrame; if( pWindow && ( ( pFrame = pWindow->ImplGetFrame() ) != NULL ) ) { + if( pFrame->IsInEvtHandler() ) + return; // we'll update later Rectangle rRect; long rWidth; ImplHandleExtTextInputPos( pWindow, rRect, rWidth ); @@ -1963,6 +1967,15 @@ void ImplRemoteWindowFrameProc( ExtRmEvent* pEvent ) { DBG_TESTSOLARMUTEX(); + ImplDelData aDelData; + Window *pWindow = pEvent->GetWindow(); + if( pWindow && pWindow->ImplGetFrame() ) + { + pWindow->ImplAddDel( &aDelData ); + // disable updates like remote CursorRect + pWindow->ImplGetFrame()->IsInEvtHandler( true ); + } + ULONG nId = pEvent->GetId(); switch ( nId ) { @@ -2083,7 +2096,14 @@ void ImplRemoteWindowFrameProc( ExtRmEvent* pEvent ) } break; } -} + if( pWindow && !aDelData.IsDelete() ) // window not deleted ? + { + pWindow->ImplRemoveDel( &aDelData ); + // enable updates like remote CursorRect + pWindow->ImplGetFrame()->IsInEvtHandler( false ); + ImplUpdateCursorRect( pWindow ); + } +} #endif |