diff options
-rw-r--r-- | vcl/source/window/window.cxx | 50 |
1 files changed, 36 insertions, 14 deletions
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index 4dad767442ec..97a90c4dd3e5 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -2,9 +2,9 @@ * * $RCSfile: window.cxx,v $ * - * $Revision: 1.38 $ + * $Revision: 1.39 $ * - * last change: $Author: hro $ $Date: 2001-08-28 14:54:15 $ + * last change: $Author: hro $ $Date: 2001-08-30 13:39:27 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -313,9 +313,6 @@ void Window::ImplUpdateGlobalSettings( AllSettings& rSettings, BOOL bCallHdl ) rSettings.SetStyleSettings( aStyleSettings ); } - if ( bCallHdl ) - GetpApp()->SystemSettingsChanging( rSettings, this ); - #ifdef DBG_UTIL // Evt. AppFont auf Fett schalten, damit man feststellen kann, // ob fuer die Texte auf anderen Systemen genuegend Platz @@ -347,6 +344,9 @@ void Window::ImplUpdateGlobalSettings( AllSettings& rSettings, BOOL bCallHdl ) rSettings.SetStyleSettings( aStyleSettings ); } #endif + + if ( bCallHdl ) + GetpApp()->SystemSettingsChanging( rSettings, this ); } // ----------------------------------------------------------------------- @@ -555,6 +555,8 @@ void Window::ImplInit( Window* pParent, WinBits nStyle, const ::com::sun::star:: nFrameStyle |= SAL_FRAME_STYLE_CLOSEABLE; if ( nStyle & WB_APP ) nFrameStyle |= SAL_FRAME_STYLE_DEFAULT; + if ( mbFloatWin || ((GetType() == WINDOW_BORDERWINDOW) && ((ImplBorderWindow*)this)->mbFloatWindow) ) + nFrameStyle = 0; SalFrame* pParentFrame = NULL; if ( pParent ) @@ -568,11 +570,15 @@ void Window::ImplInit( Window* pParent, WinBits nStyle, const ::com::sun::star:: GetpApp()->Exception( EXC_SYSOBJNOTCREATED ); pFrame->SetCallback( this, ImplWindowFrameProc ); #else + if ( mbFloatWin || ((GetType() == WINDOW_BORDERWINDOW) && ((ImplBorderWindow*)this)->mbFloatWindow) ) + nStyle = 0; + RmFrameWindow* pParentFrame = pParent ? pParent->mpFrame : NULL;; RmFrameWindow* pFrame = new RmFrameWindow( this ); if ( !pFrame->IsValid() ) { - delete pFrame, pFrame = NULL; + delete pFrame; + pFrame = NULL; GetpApp()->Exception( EXC_SYSOBJNOTCREATED ); } else @@ -4670,9 +4676,23 @@ void Window::PostStateChanged( StateChangedType nState ) // ----------------------------------------------------------------------- -BOOL Window::IsLocked( BOOL bChilds, BOOL bSystemWindows ) const +BOOL Window::IsLocked( BOOL bChilds ) const { - return mnLockCount != 0; + if ( mnLockCount != 0 ) + return TRUE; + + if ( bChilds || mbChildNotify ) + { + Window* pChild = mpFirstChild; + while ( pChild ) + { + if ( pChild->IsLocked( TRUE ) ) + return TRUE; + pChild = pChild->mpNext; + } + } + + return FALSE; } // ----------------------------------------------------------------------- @@ -4924,15 +4944,16 @@ void Window::SetSettings( const AllSettings& rSettings, BOOL bChild ) AllSettings aOldSettings = maSettings; OutputDevice::SetSettings( rSettings ); ULONG nChangeFlags = aOldSettings.GetChangeFlags( rSettings ); + + // AppFont-Aufloesung und DPI-Aufloesung neu berechnen + ImplInitResolutionSettings(); + if ( nChangeFlags ) { DataChangedEvent aDCEvt( DATACHANGED_SETTINGS, &aOldSettings, nChangeFlags ); DataChanged( aDCEvt ); } - // AppFont-Aufloesung und DPI-Aufloesung neu berechnen - ImplInitResolutionSettings(); - if ( bChild || mbChildNotify ) { Window* pChild = mpFirstChild; @@ -4960,15 +4981,16 @@ void Window::UpdateSettings( const AllSettings& rSettings, BOOL bChild ) AllSettings aOldSettings = maSettings; ULONG nChangeFlags = maSettings.Update( maSettings.GetWindowUpdate(), rSettings ); + + // AppFont-Aufloesung und DPI-Aufloesung neu berechnen + ImplInitResolutionSettings(); + if ( nChangeFlags ) { DataChangedEvent aDCEvt( DATACHANGED_SETTINGS, &aOldSettings, nChangeFlags ); DataChanged( aDCEvt ); } - // AppFont-Aufloesung und DPI-Aufloesung neu berechnen - ImplInitResolutionSettings(); - if ( bChild || mbChildNotify ) { Window* pChild = mpFirstChild; |