diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-11-14 09:19:57 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-11-14 21:25:19 +0100 |
commit | 20b2903354138f8ab19261fab74658fcf6af70e3 (patch) | |
tree | 901f78516085daa8628ef65c79da20b7631b56d3 /vcl | |
parent | 5a29e09bb5fb93743296728138bc03aa5ec1ee46 (diff) |
Resolves: tdf#121229 ignore internal children of VclScrolledWindow
Change-Id: Iecc474db8093520ba2d90aedfc5da66507f3033b
Reviewed-on: https://gerrit.libreoffice.org/63357
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/window/dialog.cxx | 8 | ||||
-rw-r--r-- | vcl/source/window/layout.cxx | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index e7acc9e530cf..b426ad39a613 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -130,7 +130,9 @@ vcl::Window * nextLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl:: { const vcl::Window *pLastChild = pChild; - if (isContainerWindow(*pChild)) + if (pChild->GetType() == WindowType::SCROLLWINDOW) + pChild = static_cast<const VclScrolledWindow*>(pChild)->get_child(); + else if (isContainerWindow(*pChild)) pChild = pChild->GetWindow(GetWindowType::FirstChild); else pChild = pChild->GetWindow(GetWindowType::Next); @@ -156,7 +158,9 @@ vcl::Window * prevLogicalChildOfParent(const vcl::Window *pTopLevel, const vcl:: { const vcl::Window *pLastChild = pChild; - if (isContainerWindow(*pChild)) + if (pChild->GetType() == WindowType::SCROLLWINDOW) + pChild = static_cast<const VclScrolledWindow*>(pChild)->get_child(); + else if (isContainerWindow(*pChild)) pChild = pChild->GetWindow(GetWindowType::LastChild); else pChild = pChild->GetWindow(GetWindowType::Prev); diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx index 9c5a8c89dc0e..837d429c82b5 100644 --- a/vcl/source/window/layout.cxx +++ b/vcl/source/window/layout.cxx @@ -1578,9 +1578,9 @@ vcl::Window *VclFrame::get_label_widget() const vcl::Window *VclFrame::get_child() const { - assert(GetChildCount() == 2); //The child widget is the normally the last (of two) children const WindowImpl* pWindowImpl = ImplGetWindowImpl(); + assert(GetChildCount() == 2 || pWindowImpl->mbInDispose); if (!m_pLabel) return pWindowImpl->mpLastChild; if (pWindowImpl->mpFirstChild == pWindowImpl->mpLastChild) //only label exists @@ -1858,8 +1858,8 @@ IMPL_LINK_NOARG(VclScrolledWindow, ScrollBarHdl, ScrollBar*, void) const vcl::Window *VclScrolledWindow::get_child() const { - assert(GetChildCount() == 4); const WindowImpl* pWindowImpl = ImplGetWindowImpl(); + assert(GetChildCount() == 4 || pWindowImpl->mbInDispose); return pWindowImpl->mpLastChild; } |