diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-09-26 14:09:59 +0200 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2018-09-29 02:33:23 +0200 |
commit | 9ff4232c365c19c9402fce80e26ccbf739d0b82e (patch) | |
tree | 16167b2b3091b28d4b678685039e80d27dd07bbd /include/vcl | |
parent | 278b1de21f8395ab2a6c49377cf4aec4c16f05c6 (diff) |
Handle initial TabControl and border window
ImplGetSubChildWindow has special code to handle a TabControl and
its pages. If the function finds a TabControl as a child it'll
return its window and then recurse into the current page.
This currently breaks in the case where the initial parent is a
TabControl. where the function will walk all of the tab pages.
The function also ignores border windows, but not if the initial
parent is a border window.
This patch correctly handles both cases and as a bonus drops all
the special page handling during child iteration.
Change-Id: Ie8699dae8d08628b66b33e0704237b9e219874bc
Reviewed-on: https://gerrit.libreoffice.org/61037
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'include/vcl')
-rw-r--r-- | include/vcl/layout.hxx | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx index 0f8818989268..22d494dfa6e2 100644 --- a/include/vcl/layout.hxx +++ b/include/vcl/layout.hxx @@ -769,6 +769,13 @@ public: //of children VCL_DLLPUBLIC vcl::Window* firstLogicalChildOfParent(const vcl::Window *pTopLevel); +//Get last window of a pTopLevel window as +//if any intermediate layout widgets didn't exist +//i.e. acts like pChild = pChild->GetWindow(GetWindowType::LastChild); +//in a flat hierarchy where dialogs only have one layer +//of children +VCL_DLLPUBLIC vcl::Window* lastLogicalChildOfParent(const vcl::Window *pTopLevel); + //Get next window after pChild of a pTopLevel window as //if any intermediate layout widgets didn't exist //i.e. acts like pChild = pChild->GetWindow(GetWindowType::Next); |