summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-02-02 17:23:57 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-02-02 17:23:57 +0000
commited8c78a00383812b0eb739812caa00ac395619e9 (patch)
treed720827c2b7a2822917f5f2d07e8ec8db7c62d3c
parent563790c2221d7e22715cdbd15aef5d6973eea140 (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.cxx17
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 )