diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-09-25 20:37:53 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-09-28 08:48:52 +0100 |
commit | dc5d6deb158bf4506630a4ef006b4eaeb9998fbf (patch) | |
tree | a270696256fb25757612d7b0062ee9da351fd67c /vcl/source/window/dlgctrl.cxx | |
parent | 5d60e826ae6b10161ecff64fbfbf9af230898764 (diff) |
we need to have the outermost TabDialog as the recipient of tab keystrokes
Change-Id: I1d230512d2145a9a3198c25c60dcd8954928120e
Diffstat (limited to 'vcl/source/window/dlgctrl.cxx')
-rw-r--r-- | vcl/source/window/dlgctrl.cxx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx index 20027768eca1..8a47e5992cee 100644 --- a/vcl/source/window/dlgctrl.cxx +++ b/vcl/source/window/dlgctrl.cxx @@ -52,8 +52,9 @@ static sal_Bool ImplHasIndirectTabParent( Window* pWindow ) // The window has inderect tab parent if it is included in tab hierarchy // of the indirect parent window - return ( pWindow && pWindow->GetParent() - && ( pWindow->GetParent()->ImplGetWindow()->GetStyle() & WB_CHILDDLGCTRL ) ); + Window* pNonLayoutParent = getNonLayoutParent(pWindow); + return ( pNonLayoutParent + && ( pNonLayoutParent->ImplGetWindow()->GetStyle() & WB_CHILDDLGCTRL ) ); } // ----------------------------------------------------------------------- @@ -68,8 +69,12 @@ static Window* ImplGetTopParentOfTabHierarchy( Window* pParent ) if ( pResult ) { - while ( pResult->GetParent() && ( pResult->ImplGetWindow()->GetStyle() & WB_CHILDDLGCTRL ) ) - pResult = pResult->GetParent(); + Window* pNonLayoutParent = getNonLayoutParent(pResult); + while ( pNonLayoutParent && ( pResult->ImplGetWindow()->GetStyle() & WB_CHILDDLGCTRL ) ) + { + pResult = pNonLayoutParent; + pNonLayoutParent = getNonLayoutParent(pResult); + } } return pResult; |