[Libreoffice-commits] core.git: Branch 'libreoffice-5-3' - vcl/source
Michael Meeks
michael.meeks at collabora.com
Wed Jan 4 17:22:59 UTC 2017
vcl/source/window/window.cxx | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
New commits:
commit f7879b26ea7ab04d4e8bbfcc2ca2439c13a0504f
Author: Michael Meeks <michael.meeks at collabora.com>
Date: Tue Jan 3 22:00:32 2017 +0000
vcl: hold VclPtrs to avoid possible lifecycle related crashers.
Makes code on common EnableInput crash reporter trace safer.
Change-Id: Ibcf218d0d2460383d12e19f48aaf0ab08e541532
Reviewed-on: https://gerrit.libreoffice.org/32706
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
(cherry picked from commit 61aa97c1be23398acb7e9160763b621f63c13d88)
Reviewed-on: https://gerrit.libreoffice.org/32719
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index ac89e1c..e483e29 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1408,7 +1408,7 @@ bool Window::ImplUpdatePos()
mnOutOffY = mpWindowImpl->mnY + pParent->mnOutOffY;
}
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
if ( pChild->ImplUpdatePos() )
@@ -1427,7 +1427,7 @@ void Window::ImplUpdateSysObjPos()
if ( mpWindowImpl->mpSysObj )
mpWindowImpl->mpSysObj->SetPosSize( mnOutOffX, mnOutOffY, mnOutWidth, mnOutHeight );
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->ImplUpdateSysObjPos();
@@ -1957,7 +1957,7 @@ bool Window::IsLocked() const
if ( mpWindowImpl->mnLockCount != 0 )
return true;
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr<vcl::Window> pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
if ( pChild->IsLocked() )
@@ -2156,7 +2156,7 @@ void Window::CollectChildren(::std::vector<vcl::Window *>& rAllChildren )
{
rAllChildren.push_back( this );
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->CollectChildren( rAllChildren );
@@ -2470,7 +2470,7 @@ void Window::Enable( bool bEnable, bool bChild )
if ( bChild )
{
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->Enable( bEnable, bChild );
@@ -2486,7 +2486,7 @@ void Window::SetCallHandlersOnInputDisabled( bool bCall )
{
mpWindowImpl->mbCallHandlersDuringInputDisabled = bCall;
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->SetCallHandlersOnInputDisabled( bCall );
@@ -2543,7 +2543,7 @@ void Window::EnableInput( bool bEnable, bool bChild )
if ( bChild )
{
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->EnableInput( bEnable, bChild );
@@ -2642,7 +2642,7 @@ void Window::AlwaysEnableInput( bool bAlways, bool bChild )
if ( bChild )
{
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->AlwaysEnableInput( bAlways, bChild );
@@ -2671,7 +2671,7 @@ void Window::AlwaysDisableInput( bool bAlways, bool bChild )
if ( bChild )
{
- vcl::Window* pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while ( pChild )
{
pChild->AlwaysDisableInput( bAlways, bChild );
@@ -3415,7 +3415,7 @@ void Window::DrawSelectionBackground( const Rectangle& rRect,
bool Window::IsScrollable() const
{
// check for scrollbars
- vcl::Window *pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while( pChild )
{
if( pChild->GetType() == WINDOW_SCROLLBAR )
@@ -3488,14 +3488,14 @@ bool Window::HasActiveChildFrame()
if( pFrameWin != mpWindowImpl->mpFrameWindow )
{
bool bDecorated = false;
- vcl::Window *pChildFrame = pFrameWin->ImplGetWindow();
+ VclPtr< vcl::Window > pChildFrame = pFrameWin->ImplGetWindow();
// #i15285# unfortunately WB_MOVEABLE is the same as WB_TABSTOP which can
// be removed for ToolBoxes to influence the keyboard accessibility
// thus WB_MOVEABLE is no indicator for decoration anymore
// but FloatingWindows carry this information in their TitleType...
// TODO: avoid duplicate WinBits !!!
if( pChildFrame && pChildFrame->ImplIsFloatingWindow() )
- bDecorated = static_cast<FloatingWindow*>(pChildFrame)->GetTitleType() != FloatWinTitleType::NONE;
+ bDecorated = static_cast<FloatingWindow*>(pChildFrame.get())->GetTitleType() != FloatWinTitleType::NONE;
if( bDecorated || (pFrameWin->mpWindowImpl->mnStyle & (WB_MOVEABLE | WB_SIZEABLE) ) )
if( pChildFrame && pChildFrame->IsVisible() && pChildFrame->IsActive() )
{
@@ -3537,7 +3537,7 @@ void Window::EnableNativeWidget( bool bEnable )
}
// push down, useful for compound controls
- vcl::Window *pChild = mpWindowImpl->mpFirstChild;
+ VclPtr< vcl::Window > pChild = mpWindowImpl->mpFirstChild;
while( pChild )
{
pChild->EnableNativeWidget( bEnable );
More information about the Libreoffice-commits
mailing list