diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-02-02 17:23:57 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-02-02 17:23:57 +0000 |
commit | ed8c78a00383812b0eb739812caa00ac395619e9 (patch) | |
tree | d720827c2b7a2822917f5f2d07e8ec8db7c62d3c | |
parent | 563790c2221d7e22715cdbd15aef5d6973eea140 (diff) |
INTEGRATION: CWS geordi2q14 (1.181.24); FILE MERGED
2004/01/28 16:38:12 hr 1.181.24.1: #111934#: merge CWS vcl7pp1r3
-rw-r--r-- | vcl/source/window/window.cxx | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index dba6a7d0c511..6879409cc924 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2,9 +2,9 @@ * * $RCSfile: window.cxx,v $ * - * $Revision: 1.181 $ + * $Revision: 1.182 $ * - * last change: $Author: vg $ $Date: 2004-01-06 14:21:01 $ + * last change: $Author: hr $ $Date: 2004-02-02 18:23:57 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -3778,7 +3778,7 @@ void Window::ImplGrabFocus( USHORT nFlags ) } - if ( pSVData->maWinData.mpFocusWin != this || ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus ) ) + if ( ( pSVData->maWinData.mpFocusWin != this && ! mbInDtor ) || ( bAsyncFocusWaiting && !bHasFocus && !bMustNotGrabFocus ) ) { // EndExtTextInput if it is not the same window if ( pSVData->maWinData.mpExtTextInputWin && @@ -4293,9 +4293,9 @@ Window::~Window() } else if ( ImplIsOverlapWindow() ) pParent = mpOverlapWindow; - if ( pParent && pParent->IsEnabled() && pParent->IsInputEnabled() ) + if ( pParent && pParent->IsEnabled() && pParent->IsInputEnabled() && pParent->IsReallyVisible() ) pParent->GrabFocus(); - else + else if( mpFrameWindow->IsReallyVisible() ) mpFrameWindow->GrabFocus(); // Falls der Focus wieder auf uns gesetzt wurde, dann wird er // auf nichts gesetzt @@ -4641,6 +4641,9 @@ void Window::ImplNotifyKeyMouseEventListeners( NotifyEvent& rNEvt ) // this allows for procesing those events internally first and pass it to // the toolkit later + ImplDelData aDelData; + ImplAddDel( &aDelData ); + if( rNEvt.GetType() == EVENT_MOUSEMOVE ) { if ( mbCompoundControl || ( rNEvt.GetWindow() == this ) ) @@ -4691,6 +4694,10 @@ void Window::ImplNotifyKeyMouseEventListeners( NotifyEvent& rNEvt ) ImplCallEventListeners( VCLEVENT_WINDOW_KEYUP, (void*)rNEvt.GetKeyEvent() ); } + if ( aDelData.IsDelete() ) + return; + ImplRemoveDel( &aDelData ); + // #106721# check if we're part of a compound control and notify Window *pParent = ImplGetParent(); while( pParent ) |