[Libreoffice-commits] core.git: vcl/inc vcl/source

Herbert Dürr hdu at apache.org
Fri Apr 19 01:28:34 PDT 2013


 vcl/inc/window.h             |    2 
 vcl/source/window/window.cxx |  321 +++++++++++++++++++++----------------------
 2 files changed, 158 insertions(+), 165 deletions(-)

New commits:
commit 3ce89a2149d3495ff63827b39c33a79cb9abacab
Author: Herbert Dürr <hdu at apache.org>
Date:   Mon Jun 18 12:05:35 2012 +0000

    Resolves: coverity#708649# start to fix mis-pimpl-ification of Window class
    
    (cherry picked from commit b0a0253e4fea1d79bc255d45f8472498a3206fd5)
    
    Conflicts:
    	vcl/source/window/window.cxx
    
    Change-Id: I8330b7361dfdd9f291babb2e49d59ddeb91f5e35

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 97401f2..725f5ad 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -226,7 +226,7 @@ enum AlwaysInputMode { AlwaysInputNone = 0, AlwaysInputEnabled = 1, AlwaysInputD
 class WindowImpl
 {
 public:
-    WindowImpl();
+    WindowImpl( WindowType );
     ~WindowImpl();
 
     ImplWinData*        mpWinData;
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 7deb67c..53b349f 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -148,12 +148,161 @@ ImplAccessibleInfos::~ImplAccessibleInfos()
 
 // -----------------------------------------------------------------------
 
-WindowImpl::WindowImpl()
-{
+WindowImpl::WindowImpl( WindowType nType )
+{
+    maZoom              = Fraction( 1, 1 );
+    maWinRegion         = Region( REGION_NULL );
+    maWinClipRegion     = Region( REGION_NULL );
+    mpWinData           = NULL;         // Extra Window Data, that we dont need for all windows
+    mpOverlapData       = NULL;         // Overlap Data
+    mpFrameData         = NULL;         // Frame Data
+    mpFrame             = NULL;         // Pointer to frame window
+    mpSysObj            = NULL;
+    mpFrameWindow       = NULL;         // window to top level parent (same as frame window)
+    mpOverlapWindow     = NULL;         // first overlap parent
+    mpBorderWindow      = NULL;         // Border-Window
+    mpClientWindow      = NULL;         // Client-Window of a FrameWindow
+    mpParent            = NULL;         // parent (inkl. BorderWindow)
+    mpRealParent        = NULL;         // real parent (exkl. BorderWindow)
+    mpFirstChild        = NULL;         // first child window
+    mpLastChild         = NULL;         // last child window
+    mpFirstOverlap      = NULL;         // first overlap window (only set in overlap windows)
+    mpLastOverlap       = NULL;         // last overlap window (only set in overlap windows)
+    mpPrev              = NULL;         // prev window
+    mpNext              = NULL;         // next window
+    mpNextOverlap       = NULL;         // next overlap window of frame
+    mpLastFocusWindow   = NULL;         // window for focus restore
+    mpDlgCtrlDownWindow = NULL;         // window for dialog control
+    mpFirstDel          = NULL;         // Dtor notification list
+    mpUserData          = NULL;         // user data
+    mpCursor            = NULL;         // cursor
+    mpControlFont       = NULL;         // font propertie
+    mpVCLXWindow        = NULL;
+    mpAccessibleInfos   = NULL;
+    maControlForeground = Color( COL_TRANSPARENT );     // no foreground set
+    maControlBackground = Color( COL_TRANSPARENT );     // no background set
+    mnLeftBorder        = 0;            // left border
+    mnTopBorder         = 0;            // top border
+    mnRightBorder       = 0;            // right border
+    mnBottomBorder      = 0;            // bottom border
+    mnWidthRequest      = -1;           // width request
+    mnHeightRequest     = -1;           // height request
+    mnX                 = 0;            // X-Position to Parent
+    mnY                 = 0;            // Y-Position to Parent
+    mnAbsScreenX        = 0;            // absolute X-position on screen, used for RTL window positioning
+    mpChildClipRegion   = NULL;         // Child-Clip-Region when ClipChildren
+    mpPaintRegion       = NULL;         // Paint-ClipRegion
+    mnStyle             = 0;            // style (init in ImplInitWindow)
+    mnPrevStyle         = 0;            // prevstyle (set in SetStyle)
+    mnExtendedStyle     = 0;            // extended style (init in ImplInitWindow)
+    mnPrevExtendedStyle = 0;            // prevstyle (set in SetExtendedStyle)
+    mnType              = nType;        // type
+    mnGetFocusFlags     = 0;            // Flags fuer GetFocus()-Aufruf
+    mnWaitCount         = 0;            // Wait-Count (>1 == Warte-MousePointer)
+    mnPaintFlags        = 0;            // Flags for ImplCallPaint
+    mnParentClipMode    = 0;            // Flags for Parent-ClipChildren-Mode
+    mnActivateMode      = 0;            // Will be converted in System/Overlap-Windows
+    mnDlgCtrlFlags      = 0;            // DialogControl-Flags
+    mnLockCount         = 0;            // LockCount
+    meAlwaysInputMode   = AlwaysInputNone; // neither AlwaysEnableInput nor AlwaysDisableInput called
+    meHalign            = VCL_ALIGN_FILL;
+    meValign            = VCL_ALIGN_FILL;
+    mePackType          = VCL_PACK_START;
+    mnPadding           = 0;
+    mnGridHeight        = 1;
+    mnGridLeftAttach    = -1;
+    mnGridTopAttach     = -1;
+    mnGridWidth         = 1;
+    mnBorderWidth       = 0;
+    mnMarginLeft        = 0;
+    mnMarginRight       = 0;
+    mnMarginTop         = 0;
+    mnMarginBottom      = 0;
+    mbFrame             = sal_False;        // sal_True: Window is a frame window
+    mbBorderWin         = sal_False;        // sal_True: Window is a border window
+    mbOverlapWin        = sal_False;        // sal_True: Window is a overlap window
+    mbSysWin            = sal_False;        // sal_True: SystemWindow is the base class
+    mbDialog            = sal_False;        // sal_True: Dialog is the base class
+    mbDockWin           = sal_False;        // sal_True: DockingWindow is the base class
+    mbFloatWin          = sal_False;        // sal_True: FloatingWindow is the base class
+    mbPushButton        = sal_False;        // sal_True: PushButton is the base class
+    mbToolBox           = sal_False;      // sal_True: ToolBox is the base class
+    mbMenuFloatingWindow= sal_False;      // sal_True: MenuFloatingWindow is the base class
+    mbToolbarFloatingWindow= sal_False;       // sal_True: ImplPopupFloatWin is the base class, used for subtoolbars
+    mbSplitter          = sal_False;      // sal_True: Splitter is the base class
+    mbVisible           = sal_False;        // sal_True: Show( sal_True ) called
+    mbOverlapVisible    = sal_False;        // sal_True: Hide called for visible window from ImplHideAllOverlapWindow()
+    mbDisabled          = sal_False;        // sal_True: Enable( sal_False ) called
+    mbInputDisabled     = sal_False;        // sal_True: EnableInput( sal_False ) called
+    mbDropDisabled      = sal_False;        // sal_True: Drop is enabled
+    mbNoUpdate          = sal_False;        // sal_True: SetUpdateMode( sal_False ) called
+    mbNoParentUpdate    = sal_False;        // sal_True: SetParentUpdateMode( sal_False ) called
+    mbActive            = sal_False;        // sal_True: Window Active
+    mbParentActive      = sal_False;        // sal_True: OverlapActive from Parent
+    mbReallyVisible     = sal_False;        // sal_True: this and all parents to an overlaped window are visible
+    mbReallyShown       = sal_False;        // sal_True: this and all parents to an overlaped window are shown
+    mbInInitShow        = sal_False;        // sal_True: we are in InitShow
+    mbChildNotify       = sal_False;        // sal_True: ChildNotify
+    mbChildPtrOverwrite = sal_False;        // sal_True: PointerStyle overwrites Child-Pointer
+    mbNoPtrVisible      = sal_False;        // sal_True: ShowPointer( sal_False ) called
+    mbMouseMove         = sal_False;        // sal_True: BaseMouseMove called
+    mbPaintFrame        = sal_False;        // sal_True: Paint is visible, but not painted
+    mbInPaint           = sal_False;        // sal_True: Inside PaintHdl
+    mbMouseButtonDown   = sal_False;        // sal_True: BaseMouseButtonDown called
+    mbMouseButtonUp     = sal_False;        // sal_True: BaseMouseButtonUp called
+    mbKeyInput          = sal_False;        // sal_True: BaseKeyInput called
+    mbKeyUp             = sal_False;        // sal_True: BaseKeyUp called
+    mbCommand           = sal_False;        // sal_True: BaseCommand called
+    mbDefPos            = sal_True;         // sal_True: Position is not Set
+    mbDefSize           = sal_True;         // sal_True: Size is not Set
+    mbCallMove          = sal_True;         // sal_True: Move must be called by Show
+    mbCallResize        = sal_True;         // sal_True: Resize must be called by Show
+    mbWaitSystemResize  = sal_True;         // sal_True: Wait for System-Resize
+    mbInitWinClipRegion = sal_True;         // sal_True: Calc Window Clip Region
+    mbInitChildRegion   = sal_False;        // sal_True: InitChildClipRegion
+    mbWinRegion         = sal_False;        // sal_True: Window Region
+    mbClipChildren      = sal_False;        // sal_True: Child-window should be clipped
+    mbClipSiblings      = sal_False;        // sal_True: Adjacent Child-window should be clipped
+    mbChildTransparent  = sal_False;        // sal_True: Child-windows are allowed to switch to transparent (incl. Parent-CLIPCHILDREN)
+    mbPaintTransparent  = sal_False;        // sal_True: Paints should be executed on the Parent
+    mbMouseTransparent  = sal_False;        // sal_True: Window is transparent for Mouse
+    mbDlgCtrlStart      = sal_False;        // sal_True: From here on own Dialog-Control
+    mbFocusVisible      = sal_False;        // sal_True: Focus Visible
+    mbUseNativeFocus    = sal_False;
+    mbNativeFocusVisible= sal_False;        // sal_True: native Focus Visible
+    mbInShowFocus       = sal_False;        // prevent recursion
+    mbInHideFocus       = sal_False;        // prevent recursion
+    mbTrackVisible      = sal_False;        // sal_True: Tracking Visible
+    mbControlForeground = sal_False;        // sal_True: Foreground-Property set
+    mbControlBackground = sal_False;        // sal_True: Background-Property set
+    mbAlwaysOnTop       = sal_False;        // sal_True: always visible for all others windows
+    mbCompoundControl   = sal_False;        // sal_True: Composite Control => Listener...
+    mbCompoundControlHasFocus = sal_False;  // sal_True: Composite Control has focus somewhere
+    mbPaintDisabled     = sal_False;        // sal_True: Paint should not be executed
+    mbAllResize         = sal_False;        // sal_True: Also sent ResizeEvents with 0,0
+    mbInDtor            = sal_False;        // sal_True: We're still in Window-Dtor
+    mbExtTextInput      = sal_False;        // sal_True: ExtTextInput-Mode is active
+    mbInFocusHdl        = sal_False;        // sal_True: Within GetFocus-Handler
+    mbCreatedWithToolkit = sal_False;
+    mbSuppressAccessibilityEvents = sal_False; // sal_True: do not send any accessibility events
+    mbDrawSelectionBackground = sal_False;    // sal_True: draws transparent window background to indicate (toolbox) selection
+    mbIsInTaskPaneList = sal_False;           // sal_True: window was added to the taskpanelist in the topmost system window
+    mnNativeBackground  = 0;              // initialize later, depends on type
+    mbCallHandlersDuringInputDisabled = sal_False; // sal_True: call event handlers even if input is disabled
+    mbHelpTextDynamic = sal_False;          // sal_True: append help id in HELP_DEBUG case
+    mbFakeFocusSet = sal_False; // sal_True: pretend as if the window has focus.
+    mbHexpand = false;
+    mbVexpand = false;
+    mbExpand = false;
+    mbFill = true;
+    mbSecondary = false;
 }
 
 WindowImpl::~WindowImpl()
 {
+    delete mpChildClipRegion;
+    delete mpAccessibleInfos;
+    delete mpControlFont;
 }
 
 
@@ -572,157 +721,10 @@ CommandEvent ImplTranslateCommandEvent( const CommandEvent& rCEvt, Window* pSour
 
 void Window::ImplInitWindowData( WindowType nType )
 {
-    mpWindowImpl = new WindowImpl;
+    mpWindowImpl = new WindowImpl( nType );
 
     meOutDevType        = OUTDEV_WINDOW;
 
-    mpWindowImpl->maZoom              = Fraction( 1, 1 );
-    mpWindowImpl->maWinRegion         = Region( REGION_NULL );
-    mpWindowImpl->maWinClipRegion                   = Region( REGION_NULL );
-    mpWindowImpl->mpWinData           = NULL;         // Extra Window Data, that we dont need for all windows
-    mpWindowImpl->mpOverlapData       = NULL;         // Overlap Data
-    mpWindowImpl->mpFrameData         = NULL;         // Frame Data
-    mpWindowImpl->mpFrame             = NULL;         // Pointer to frame window
-    mpWindowImpl->mpSysObj            = NULL;
-    mpWindowImpl->mpFrameWindow       = NULL;         // window to top level parent (same as frame window)
-    mpWindowImpl->mpOverlapWindow     = NULL;         // first overlap parent
-    mpWindowImpl->mpBorderWindow      = NULL;         // Border-Window
-    mpWindowImpl->mpClientWindow      = NULL;         // Client-Window of a FrameWindow
-    mpWindowImpl->mpParent            = NULL;         // parent (inkl. BorderWindow)
-    mpWindowImpl->mpRealParent        = NULL;         // real parent (exkl. BorderWindow)
-    mpWindowImpl->mpFirstChild        = NULL;         // first child window
-    mpWindowImpl->mpLastChild         = NULL;         // last child window
-    mpWindowImpl->mpFirstOverlap      = NULL;         // first overlap window (only set in overlap windows)
-    mpWindowImpl->mpLastOverlap       = NULL;         // last overlap window (only set in overlap windows)
-    mpWindowImpl->mpPrev              = NULL;         // prev window
-    mpWindowImpl->mpNext              = NULL;         // next window
-    mpWindowImpl->mpNextOverlap       = NULL;         // next overlap window of frame
-    mpWindowImpl->mpLastFocusWindow   = NULL;         // window for focus restore
-    mpWindowImpl->mpDlgCtrlDownWindow = NULL;         // window for dialog control
-    mpWindowImpl->mpFirstDel          = NULL;         // Dtor notification list
-    mpWindowImpl->mpUserData          = NULL;         // user data
-    mpWindowImpl->mpCursor            = NULL;         // cursor
-    mpWindowImpl->mpControlFont       = NULL;         // font propertie
-    mpWindowImpl->mpVCLXWindow        = NULL;
-    mpWindowImpl->mpAccessibleInfos   = NULL;
-    mpWindowImpl->maControlForeground = Color( COL_TRANSPARENT );     // no foreground set
-    mpWindowImpl->maControlBackground = Color( COL_TRANSPARENT );     // no background set
-    mpWindowImpl->mnLeftBorder        = 0;            // left border
-    mpWindowImpl->mnTopBorder         = 0;            // top border
-    mpWindowImpl->mnRightBorder       = 0;            // right border
-    mpWindowImpl->mnBottomBorder      = 0;            // bottom border
-    mpWindowImpl->mnWidthRequest      = -1;           // width request
-    mpWindowImpl->mnHeightRequest     = -1;           // height request
-    mpWindowImpl->mnX                 = 0;            // X-Position to Parent
-    mpWindowImpl->mnY                 = 0;            // Y-Position to Parent
-    mpWindowImpl->mnAbsScreenX        = 0;            // absolute X-position on screen, used for RTL window positioning
-    mpWindowImpl->mpChildClipRegion   = NULL;         // Child-Clip-Region when ClipChildren
-    mpWindowImpl->mpPaintRegion       = NULL;         // Paint-ClipRegion
-    mpWindowImpl->mnStyle             = 0;            // style (init in ImplInitWindow)
-    mpWindowImpl->mnPrevStyle         = 0;            // prevstyle (set in SetStyle)
-    mpWindowImpl->mnExtendedStyle     = 0;            // extended style (init in ImplInitWindow)
-    mpWindowImpl->mnPrevExtendedStyle = 0;            // prevstyle (set in SetExtendedStyle)
-    mpWindowImpl->mnType              = nType;        // type
-    mpWindowImpl->mnGetFocusFlags     = 0;            // Flags fuer GetFocus()-Aufruf
-    mpWindowImpl->mnWaitCount         = 0;            // Wait-Count (>1 == Warte-MousePointer)
-    mpWindowImpl->mnPaintFlags        = 0;            // Flags for ImplCallPaint
-    mpWindowImpl->mnParentClipMode    = 0;            // Flags for Parent-ClipChildren-Mode
-    mpWindowImpl->mnActivateMode      = 0;            // Will be converted in System/Overlap-Windows
-    mpWindowImpl->mnDlgCtrlFlags      = 0;            // DialogControl-Flags
-    mpWindowImpl->mnLockCount         = 0;            // LockCount
-    mpWindowImpl->meAlwaysInputMode   = AlwaysInputNone; // neither AlwaysEnableInput nor AlwaysDisableInput called
-    mpWindowImpl->meHalign            = VCL_ALIGN_FILL;
-    mpWindowImpl->meValign            = VCL_ALIGN_FILL;
-    mpWindowImpl->mePackType          = VCL_PACK_START;
-    mpWindowImpl->mnPadding           = 0;
-    mpWindowImpl->mnGridHeight        = 1;
-    mpWindowImpl->mnGridLeftAttach    = -1;
-    mpWindowImpl->mnGridTopAttach     = -1;
-    mpWindowImpl->mnGridWidth         = 1;
-    mpWindowImpl->mnBorderWidth       = 0;
-    mpWindowImpl->mnMarginLeft        = 0;
-    mpWindowImpl->mnMarginRight       = 0;
-    mpWindowImpl->mnMarginTop         = 0;
-    mpWindowImpl->mnMarginBottom      = 0;
-    mpWindowImpl->mbFrame             = sal_False;        // sal_True: Window is a frame window
-    mpWindowImpl->mbBorderWin         = sal_False;        // sal_True: Window is a border window
-    mpWindowImpl->mbOverlapWin        = sal_False;        // sal_True: Window is a overlap window
-    mpWindowImpl->mbSysWin            = sal_False;        // sal_True: SystemWindow is the base class
-    mpWindowImpl->mbDialog            = sal_False;        // sal_True: Dialog is the base class
-    mpWindowImpl->mbDockWin           = sal_False;        // sal_True: DockingWindow is the base class
-    mpWindowImpl->mbFloatWin          = sal_False;        // sal_True: FloatingWindow is the base class
-    mpWindowImpl->mbPushButton        = sal_False;        // sal_True: PushButton is the base class
-    mpWindowImpl->mbToolBox           = sal_False;      // sal_True: ToolBox is the base class
-    mpWindowImpl->mbMenuFloatingWindow= sal_False;      // sal_True: MenuFloatingWindow is the base class
-    mpWindowImpl->mbToolbarFloatingWindow= sal_False;       // sal_True: ImplPopupFloatWin is the base class, used for subtoolbars
-    mpWindowImpl->mbSplitter          = sal_False;      // sal_True: Splitter is the base class
-    mpWindowImpl->mbVisible           = sal_False;        // sal_True: Show( sal_True ) called
-    mpWindowImpl->mbOverlapVisible    = sal_False;        // sal_True: Hide called for visible window from ImplHideAllOverlapWindow()
-    mpWindowImpl->mbDisabled          = sal_False;        // sal_True: Enable( sal_False ) called
-    mpWindowImpl->mbInputDisabled     = sal_False;        // sal_True: EnableInput( sal_False ) called
-    mpWindowImpl->mbDropDisabled      = sal_False;        // sal_True: Drop is enabled
-    mpWindowImpl->mbNoUpdate          = sal_False;        // sal_True: SetUpdateMode( sal_False ) called
-    mpWindowImpl->mbNoParentUpdate    = sal_False;        // sal_True: SetParentUpdateMode( sal_False ) called
-    mpWindowImpl->mbActive            = sal_False;        // sal_True: Window Active
-    mpWindowImpl->mbParentActive      = sal_False;        // sal_True: OverlapActive from Parent
-    mpWindowImpl->mbReallyVisible     = sal_False;        // sal_True: this and all parents to an overlaped window are visible
-    mpWindowImpl->mbReallyShown       = sal_False;        // sal_True: this and all parents to an overlaped window are shown
-    mpWindowImpl->mbInInitShow        = sal_False;        // sal_True: we are in InitShow
-    mpWindowImpl->mbChildNotify       = sal_False;        // sal_True: ChildNotify
-    mpWindowImpl->mbChildPtrOverwrite = sal_False;        // sal_True: PointerStyle overwrites Child-Pointer
-    mpWindowImpl->mbNoPtrVisible      = sal_False;        // sal_True: ShowPointer( sal_False ) called
-    mpWindowImpl->mbMouseMove         = sal_False;        // sal_True: BaseMouseMove called
-    mpWindowImpl->mbPaintFrame        = sal_False;        // sal_True: Paint is visible, but not painted
-    mpWindowImpl->mbInPaint           = sal_False;        // sal_True: Inside PaintHdl
-    mpWindowImpl->mbMouseButtonDown   = sal_False;        // sal_True: BaseMouseButtonDown called
-    mpWindowImpl->mbMouseButtonUp     = sal_False;        // sal_True: BaseMouseButtonUp called
-    mpWindowImpl->mbKeyInput          = sal_False;        // sal_True: BaseKeyInput called
-    mpWindowImpl->mbKeyUp             = sal_False;        // sal_True: BaseKeyUp called
-    mpWindowImpl->mbCommand           = sal_False;        // sal_True: BaseCommand called
-    mpWindowImpl->mbDefPos            = sal_True;         // sal_True: Position is not Set
-    mpWindowImpl->mbDefSize           = sal_True;         // sal_True: Size is not Set
-    mpWindowImpl->mbCallMove          = sal_True;         // sal_True: Move must be called by Show
-    mpWindowImpl->mbCallResize        = sal_True;         // sal_True: Resize must be called by Show
-    mpWindowImpl->mbWaitSystemResize  = sal_True;         // sal_True: Wait for System-Resize
-    mpWindowImpl->mbInitWinClipRegion = sal_True;         // sal_True: Calc Window Clip Region
-    mpWindowImpl->mbInitChildRegion   = sal_False;        // sal_True: InitChildClipRegion
-    mpWindowImpl->mbWinRegion         = sal_False;        // sal_True: Window Region
-    mpWindowImpl->mbClipChildren      = sal_False;        // sal_True: Child-window should be clipped
-    mpWindowImpl->mbClipSiblings      = sal_False;        // sal_True: Adjacent Child-window should be clipped
-    mpWindowImpl->mbChildTransparent  = sal_False;        // sal_True: Child-windows are allowed to switch to transparent (incl. Parent-CLIPCHILDREN)
-    mpWindowImpl->mbPaintTransparent  = sal_False;        // sal_True: Paints should be executed on the Parent
-    mpWindowImpl->mbMouseTransparent  = sal_False;        // sal_True: Window is transparent for Mouse
-    mpWindowImpl->mbDlgCtrlStart      = sal_False;        // sal_True: From here on own Dialog-Control
-    mpWindowImpl->mbFocusVisible      = sal_False;        // sal_True: Focus Visible
-    mpWindowImpl->mbUseNativeFocus    = sal_False;
-    mpWindowImpl->mbNativeFocusVisible= sal_False;        // sal_True: native Focus Visible
-    mpWindowImpl->mbInShowFocus       = sal_False;        // prevent recursion
-    mpWindowImpl->mbInHideFocus       = sal_False;        // prevent recursion
-    mpWindowImpl->mbTrackVisible      = sal_False;        // sal_True: Tracking Visible
-    mpWindowImpl->mbControlForeground = sal_False;        // sal_True: Foreground-Property set
-    mpWindowImpl->mbControlBackground = sal_False;        // sal_True: Background-Property set
-    mpWindowImpl->mbAlwaysOnTop       = sal_False;        // sal_True: always visible for all others windows
-    mpWindowImpl->mbCompoundControl   = sal_False;        // sal_True: Composite Control => Listener...
-    mpWindowImpl->mbCompoundControlHasFocus = sal_False;  // sal_True: Composite Control has focus somewhere
-    mpWindowImpl->mbPaintDisabled     = sal_False;        // sal_True: Paint should not be executed
-    mpWindowImpl->mbAllResize         = sal_False;        // sal_True: Also sent ResizeEvents with 0,0
-    mpWindowImpl->mbInDtor            = sal_False;        // sal_True: We're still in Window-Dtor
-    mpWindowImpl->mbExtTextInput      = sal_False;        // sal_True: ExtTextInput-Mode is active
-    mpWindowImpl->mbInFocusHdl        = sal_False;        // sal_True: Within GetFocus-Handler
-    mpWindowImpl->mbCreatedWithToolkit = sal_False;
-    mpWindowImpl->mbSuppressAccessibilityEvents = sal_False; // sal_True: do not send any accessibility events
-    mpWindowImpl->mbDrawSelectionBackground = sal_False;    // sal_True: draws transparent window background to indicate (toolbox) selection
-    mpWindowImpl->mbIsInTaskPaneList = sal_False;           // sal_True: window was added to the taskpanelist in the topmost system window
-    mpWindowImpl->mnNativeBackground  = 0;              // initialize later, depends on type
-    mpWindowImpl->mbCallHandlersDuringInputDisabled = sal_False; // sal_True: call event handlers even if input is disabled
-    mpWindowImpl->mbHelpTextDynamic = sal_False;          // sal_True: append help id in HELP_DEBUG case
-    mpWindowImpl->mbFakeFocusSet = sal_False; // sal_True: pretend as if the window has focus.
-    mpWindowImpl->mbHexpand = false;
-    mpWindowImpl->mbVexpand = false;
-    mpWindowImpl->mbExpand = false;
-    mpWindowImpl->mbFill = true;
-    mpWindowImpl->mbSecondary = false;
-
 
     mbEnableRTL         = Application::GetSettings().GetLayoutRTL();         // sal_True: this outdev will be mirrored if RTL window layout (UI mirroring) is globally active
 }
@@ -4601,10 +4603,10 @@ Window::~Window()
             Application::RemoveUserEvent( mpWindowImpl->mpFrameData->mnMouseMoveId );
     }
 
-    // release Graphic
+    // release SalGraphics
     ImplReleaseGraphics();
 
-    // if appropriate announce the window has been deleted
+    // notify ImplDelData subscribers of this window about the window deletion
     ImplDelData* pDelData = mpWindowImpl->mpFirstDel;
     while ( pDelData )
     {
@@ -4632,7 +4634,7 @@ Window::~Window()
         }
     }
 
-    // delete extra window data
+    // cleanup Extra Window Data, TODO: add and use ImplWinData destructor
     if ( mpWindowImpl->mpWinData )
     {
         if ( mpWindowImpl->mpWinData->mpExtOldText )
@@ -4649,14 +4651,11 @@ Window::~Window()
         delete mpWindowImpl->mpWinData;
     }
 
-
-    // delete Overlap-Window data
+    // cleanup overlap related window data
     if ( mpWindowImpl->mpOverlapData )
-    {
         delete mpWindowImpl->mpOverlapData;
-    }
 
-    // delete BorderWindow or Frame if required
+    // remove BorderWindow or Frame window data
     if ( mpWindowImpl->mpBorderWindow )
         delete mpWindowImpl->mpBorderWindow;
     else if ( mpWindowImpl->mbFrame )
@@ -4675,12 +4674,6 @@ Window::~Window()
         delete mpWindowImpl->mpFrameData;
     }
 
-    if ( mpWindowImpl->mpChildClipRegion )
-        delete mpWindowImpl->mpChildClipRegion;
-
-    delete mpWindowImpl->mpAccessibleInfos;
-    delete mpWindowImpl->mpControlFont;
-
     // should be the last statements
     delete mpWindowImpl; mpWindowImpl = NULL;
 }


More information about the Libreoffice-commits mailing list