From fce9d818e7ddeeb309e56069f67b7fb702ea31a6 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 27 Aug 2020 16:16:03 +0100 Subject: add a DisableCycleFocusOut flag for an all-welded hierarchy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit so we can differentiate the case of embedded welded widgets co-sharing the tab-cycle sequence with vcl widgets vs the case its all welded widgets Change-Id: I5c57b4e98d2f5c543522a72e31d554a67c259307 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101485 Tested-by: Caolán McNamara Reviewed-by: Caolán McNamara --- vcl/source/app/salvtables.cxx | 2 +- vcl/source/control/InterimItemWindow.cxx | 7 ++++--- vcl/source/control/calendar.cxx | 2 +- vcl/source/window/builder.cxx | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) (limited to 'vcl/source') diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 0783c26dbfba..df22a2c3d784 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -6862,7 +6862,7 @@ weld::Builder* SalInstance::CreateBuilder(weld::Widget* pParent, const OUString& } weld::Builder* SalInstance::CreateInterimBuilder(vcl::Window* pParent, const OUString& rUIRoot, - const OUString& rUIFile, sal_uInt64) + const OUString& rUIFile, bool, sal_uInt64) { return new SalInstanceBuilder(pParent, rUIRoot, rUIFile); } diff --git a/vcl/source/control/InterimItemWindow.cxx b/vcl/source/control/InterimItemWindow.cxx index 5e7c189fdd28..588b4f22e900 100644 --- a/vcl/source/control/InterimItemWindow.cxx +++ b/vcl/source/control/InterimItemWindow.cxx @@ -11,7 +11,8 @@ #include InterimItemWindow::InterimItemWindow(vcl::Window* pParent, const OUString& rUIXMLDescription, - const OString& rID, sal_uInt64 nLOKWindowId) + const OString& rID, bool bAllowCycleFocusOut, + sal_uInt64 nLOKWindowId) : Control(pParent, WB_TABSTOP) , m_pWidget(nullptr) // inheritors are expected to call InitControlBase { @@ -21,8 +22,8 @@ InterimItemWindow::InterimItemWindow(vcl::Window* pParent, const OUString& rUIXM m_xVclContentArea = VclPtr::Create(this); m_xVclContentArea->Show(); - m_xBuilder.reset( - Application::CreateInterimBuilder(m_xVclContentArea, rUIXMLDescription, nLOKWindowId)); + m_xBuilder.reset(Application::CreateInterimBuilder(m_xVclContentArea, rUIXMLDescription, + bAllowCycleFocusOut, nLOKWindowId)); m_xContainer = m_xBuilder->weld_container(rID); SetBackground(); diff --git a/vcl/source/control/calendar.cxx b/vcl/source/control/calendar.cxx index 14fcfe62f797..3913e617a4ea 100644 --- a/vcl/source/control/calendar.cxx +++ b/vcl/source/control/calendar.cxx @@ -1526,7 +1526,7 @@ namespace public: ImplCFieldFloat(vcl::Window* pContainer) - : mxBuilder(Application::CreateInterimBuilder(pContainer, "svt/ui/calendar.ui")) + : mxBuilder(Application::CreateInterimBuilder(pContainer, "svt/ui/calendar.ui", false)) , mxContainer(mxBuilder->weld_container("Calendar")) , mxCalendar(mxBuilder->weld_calendar("date")) , mxTodayBtn(mxBuilder->weld_button("today")) diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 2fd07524b137..f51ed30232e9 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -182,7 +182,7 @@ weld::Builder* Application::CreateBuilder(weld::Widget* pParent, const OUString return ImplGetSVData()->mpDefInst->CreateBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile); } -weld::Builder* Application::CreateInterimBuilder(vcl::Window* pParent, const OUString &rUIFile, sal_uInt64 nLOKWindowId) +weld::Builder* Application::CreateInterimBuilder(vcl::Window* pParent, const OUString &rUIFile, bool bAllowCycleFocusOut, sal_uInt64 nLOKWindowId) { if (comphelper::LibreOfficeKit::isActive() && (rUIFile == "svx/ui/stylespreview.ui" @@ -191,7 +191,7 @@ weld::Builder* Application::CreateInterimBuilder(vcl::Window* pParent, const OUS return new JSInstanceBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile, css::uno::Reference(), nLOKWindowId); } - return ImplGetSVData()->mpDefInst->CreateInterimBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile, nLOKWindowId); + return ImplGetSVData()->mpDefInst->CreateInterimBuilder(pParent, AllSettings::GetUIRootDir(), rUIFile, bAllowCycleFocusOut, nLOKWindowId); } weld::MessageDialog* Application::CreateMessageDialog(weld::Widget* pParent, VclMessageType eMessageType, -- cgit