diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-12-10 13:19:27 +0100 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2021-12-10 14:09:13 +0100 |
commit | 77cb655a60a238100b4942b9a41a1a989031c39c (patch) | |
tree | 0d51ddd633c086ccc37d9945ef3b286c5b622f36 | |
parent | bab898c7c9e1f7e39c5ac22fdcf823c7dbc493b6 (diff) |
catchall
private/jmux/current-reorga
Change-Id: I61e9916a667a92e6bd5489e5ed1d1dead2a61765
-rw-r--r-- | basic/source/runtime/methods1.cxx | 16 | ||||
-rw-r--r-- | config_host/config_wasm_strip.h.in | 2 | ||||
-rw-r--r-- | configmgr/source/xcuparser.cxx | 4 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | cppu/source/uno/lbenv.cxx | 6 | ||||
-rw-r--r-- | cppu/source/uno/lbmap.cxx | 2 | ||||
-rw-r--r-- | cui/source/factory/dlgfact.cxx | 4 | ||||
-rw-r--r-- | desktop/CustomTarget_soffice.mk | 2 | ||||
-rw-r--r-- | desktop/source/app/app.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/appl/appserv.cxx | 2 | ||||
-rw-r--r-- | sfx2/source/control/dispatch.cxx | 34 | ||||
-rw-r--r-- | solenv/bin/image-sort.py | 2 | ||||
-rw-r--r-- | solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk | 2 | ||||
-rw-r--r-- | static/CustomTarget_wasm_fs_image.mk | 20 | ||||
-rw-r--r-- | static/soffice_args.js | 5 | ||||
-rw-r--r-- | vcl/Module_vcl.mk | 2 | ||||
-rw-r--r-- | vcl/inc/qt5/QtInstance.hxx | 1 | ||||
-rw-r--r-- | vcl/qt5/QtFrame.cxx | 36 | ||||
-rw-r--r-- | vcl/qt5/QtInstance.cxx | 12 | ||||
-rw-r--r-- | vcl/qt5/QtWidget.cxx | 5 | ||||
-rw-r--r-- | xmloff/Library_xo.mk | 2 |
21 files changed, 104 insertions, 59 deletions
diff --git a/basic/source/runtime/methods1.cxx b/basic/source/runtime/methods1.cxx index 8e78776bc7f8..fca27708962a 100644 --- a/basic/source/runtime/methods1.cxx +++ b/basic/source/runtime/methods1.cxx @@ -2973,13 +2973,6 @@ void SbRtl_CompatibilityMode(StarBASIC *, SbxArray & rPar, bool) rPar.Get(0)->PutBool(bEnabled); } -bool LibreOffice6FloatingPointMode() -{ - static bool bMode = std::getenv("LIBREOFFICE6FLOATINGPOINTMODE") != nullptr; - - return bMode || officecfg::Office::Scripting::Basic::Compatibility::UseLibreOffice6FloatingPointConversion::get(); -} - void SbRtl_Input(StarBASIC *, SbxArray & rPar, bool) { // 2 parameters needed @@ -3030,7 +3023,14 @@ void SbRtl_Me(StarBASIC *, SbxArray & rPar, bool) refVar->PutObject( pClassModuleObject ); } -#endif +#endif // HAVE_FEATURE_SCRIPTING + +bool LibreOffice6FloatingPointMode() +{ + static bool bMode = std::getenv("LIBREOFFICE6FLOATINGPOINTMODE") != nullptr; + + return bMode || officecfg::Office::Scripting::Basic::Compatibility::UseLibreOffice6FloatingPointConversion::get(); +} sal_Int16 implGetWeekDay( double aDate, bool bFirstDayParam, sal_Int16 nFirstDay ) { diff --git a/config_host/config_wasm_strip.h.in b/config_host/config_wasm_strip.h.in index 0e74a2a568ad..fe3d8b908eca 100644 --- a/config_host/config_wasm_strip.h.in +++ b/config_host/config_wasm_strip.h.in @@ -17,7 +17,7 @@ #define ENABLE_WASM_STRIP_PINGUSER #define ENABLE_WASM_STRIP_PREMULTIPLY #define ENABLE_WASM_STRIP_RECENT -#define ENABLE_WASM_STRIP_RECOVERYUI +// #define ENABLE_WASM_STRIP_RECOVERYUI #define ENABLE_WASM_STRIP_SPLASH #define ENABLE_WASM_STRIP_SWEXPORTS #endif diff --git a/configmgr/source/xcuparser.cxx b/configmgr/source/xcuparser.cxx index af21518abd78..53020a9d21c1 100644 --- a/configmgr/source/xcuparser.cxx +++ b/configmgr/source/xcuparser.cxx @@ -286,7 +286,7 @@ void XcuParser::handleComponentData(xmlreader::XmlReader & reader) { data_.getComponents().findNode(valueParser_.getLayer(), componentName_)); if (!node.is()) { - SAL_WARN( + SAL_INFO( "configmgr", "unknown component \"" << componentName_ << "\" in \"" << reader.getUrl() << '"'); @@ -898,7 +898,7 @@ void XcuParser::handleSetNode(xmlreader::XmlReader & reader, SetNode * set) { switch (op) { case OPERATION_MODIFY: if (i == members.end()) { - SAL_WARN( + SAL_INFO( "configmgr", "ignoring modify of unknown set member node \"" << name << "\" in \"" << reader.getUrl() << '"'); diff --git a/configure.ac b/configure.ac index 5c554c4ca35a..a5c55e8d6e04 100644 --- a/configure.ac +++ b/configure.ac @@ -3038,7 +3038,7 @@ ENABLE_SERVICES_RDB_FROM_BUILD= if test "$enable_services_rdb_from_build" = yes; then ENABLE_SERVICES_RDB_FROM_BUILD=TRUE if test -n "$with_locales" -a "$with_locales" != en -a "$with_locales" != ALL; then - AC_MSG_ERROR([Currently just --with-locales=all or en is supported with --enable-services-rdb-from-build]) + AC_MSG_ERROR([Currently just --with-locales=ALL or en is supported with --enable-services-rdb-from-build]) fi fi AC_SUBST(ENABLE_SERVICES_RDB_FROM_BUILD) diff --git a/cppu/source/uno/lbenv.cxx b/cppu/source/uno/lbenv.cxx index f2e8a27581ab..f19d8e725e4f 100644 --- a/cppu/source/uno/lbenv.cxx +++ b/cppu/source/uno/lbenv.cxx @@ -1002,7 +1002,6 @@ void EnvironmentsData::getRegisteredEnvironments( bool loadEnv(OUString const & cLibStem, uno_Environment * pEnv) { -#ifndef __EMSCRIPTEN__ #ifdef DISABLE_DYNLOADING uno_initEnvironmentFunc fpInit; @@ -1042,11 +1041,6 @@ bool loadEnv(OUString const & cLibStem, (*fpInit)( pEnv ); // init of environment return true; -#else - (void)cLibStem; - (void)pEnv; - return false; -#endif } } diff --git a/cppu/source/uno/lbmap.cxx b/cppu/source/uno/lbmap.cxx index a670e3bcc820..43818eb85025 100644 --- a/cppu/source/uno/lbmap.cxx +++ b/cppu/source/uno/lbmap.cxx @@ -328,10 +328,8 @@ static void setNegativeBridge( const OUString & rBridgeName ) static uno_ext_getMappingFunc selectMapFunc( const OUString & rBridgeName ) { -#ifndef EMSCRIPTEN if (rBridgeName.equalsAscii( CPPU_CURRENT_LANGUAGE_BINDING_NAME "_uno" )) return CPPU_ENV_uno_ext_getMapping; -#endif #if HAVE_FEATURE_JAVA if (rBridgeName.equalsAscii( "java" "_uno" )) return java_uno_ext_getMapping; diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index d67cdd3f9aa7..01647789881b 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -1514,8 +1514,8 @@ AbstractDialogFactory_Impl::CreateTipOfTheDayDialog(weld::Window* pParent) VclPtr<VclAbstractDialog> AbstractDialogFactory_Impl::CreateToolbarmodeDialog(weld::Window* pParent) { - return VclPtr<CuiAbstractController_Impl>::Create( - std::make_unique<ToolbarmodeDialog>(pParent)); + return VclPtr<CuiAbstractControllerAsync_Impl>::Create( + std::make_shared<ToolbarmodeDialog>(pParent)); } VclPtr<AbstractDiagramDialog> diff --git a/desktop/CustomTarget_soffice.mk b/desktop/CustomTarget_soffice.mk index c7ac35e46f9b..e493d061b4cd 100644 --- a/desktop/CustomTarget_soffice.mk +++ b/desktop/CustomTarget_soffice.mk @@ -13,7 +13,7 @@ $(call gb_CustomTarget_get_target,desktop/soffice) : \ $(call gb_CustomTarget_get_workdir,desktop/soffice)/soffice.sh $(call gb_CustomTarget_get_workdir,desktop/soffice)/soffice.sh : \ - $(SRCDIR)/desktop/scripts/soffice$(if $(DISABLE_DYNLOADING),_nodyn).sh \ + $(SRCDIR)/desktop/scripts/soffice.sh \ $(BUILDDIR)/config_host.mk \ | $(call gb_CustomTarget_get_workdir,desktop/soffice)/.dir $(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),SED,1) diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 3df0efe8ed34..51c19fa19323 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -2003,7 +2003,6 @@ void Desktop::OpenClients() handleCrashReport(); #endif -#if 0 if ( ! bAllowRecoveryAndSessionManagement ) { try @@ -2080,7 +2079,6 @@ void Desktop::OpenClients() } } } -#endif // write this information here to avoid depending on vcl in the crash reporter lib CrashReporter::addKeyValue("Language", Application::GetSettings().GetLanguageTag().getBcp47(), CrashReporter::Create); diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx index 30f813d0df3c..8dcb90caac4d 100644 --- a/sfx2/source/appl/appserv.cxx +++ b/sfx2/source/appl/appserv.cxx @@ -953,7 +953,7 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq ) SfxAbstractDialogFactory* pFact = SfxAbstractDialogFactory::Create(); ScopedVclPtr<VclAbstractDialog> pDlg( pFact->CreateToolbarmodeDialog(rReq.GetFrameWeld())); - pDlg->Execute(); + pDlg->StartExecuteAsync(nullptr); bDone = true; break; } diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx index 7dd13bdeb912..36d63319405e 100644 --- a/sfx2/source/control/dispatch.cxx +++ b/sfx2/source/control/dispatch.cxx @@ -29,6 +29,7 @@ #include <boost/property_tree/json_parser.hpp> #include <com/sun/star/awt/PopupMenuDirection.hpp> +#include <com/sun/star/awt/XPopupMenuAsync.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/frame/XDispatchRecorderSupplier.hpp> #include <com/sun/star/frame/XLayoutManager.hpp> @@ -1697,19 +1698,27 @@ struct SfxDispatcherPopupFinish final css::uno::Reference<css::frame::XPopupMenuController> m_xPopupController; std::function<void(sal_Int16)> m_aCloseFunc; rtl::Reference<::svt::DialogClosedListener> m_xDialogListener; - VclPtr<PopupMenu> m_pPopupMenu; + css::uno::Reference<css::awt::XPopupMenu> m_xPopupMenu; DECL_LINK(PopupClosedHdl, css::ui::dialogs::DialogClosedEvent*, void); SfxDispatcherPopupFinish(css::uno::Reference<css::frame::XPopupMenuController> xPopupController, - const std::function<void(sal_Int16)>& rCloseFunc, PopupMenu& rVCLMenu) + const std::function<void(sal_Int16)>& rCloseFunc, + css::uno::Reference<css::awt::XPopupMenu> xPopupMenu) : m_xPopupController(xPopupController) , m_aCloseFunc(rCloseFunc) , m_xDialogListener(new ::svt::DialogClosedListener()) - , m_pPopupMenu(&rVCLMenu) + , m_xPopupMenu(xPopupMenu) { m_xDialogListener->SetDialogClosedLink(LINK(this, SfxDispatcherPopupFinish, PopupClosedHdl)); } + + void Finish(sal_Int16 nResult) + { + css::uno::Reference<css::uno::XInterface> xInterface(m_xPopupMenu, css::uno::UNO_QUERY); + css::ui::dialogs::DialogClosedEvent aEvt(xInterface, nResult); + m_xDialogListener->dialogClosed(aEvt); + } }; IMPL_LINK(SfxDispatcherPopupFinish, PopupClosedHdl, css::ui::dialogs::DialogClosedEvent*, pEvt, void) @@ -1722,8 +1731,11 @@ IMPL_LINK(SfxDispatcherPopupFinish, PopupClosedHdl, css::ui::dialogs::DialogClos css::uno::Reference<css::lang::XComponent> xComponent(m_xPopupController, css::uno::UNO_QUERY); if (xComponent.is()) xComponent->dispose(); - m_pPopupMenu->Finish(); - m_pPopupMenu.disposeAndClear(); + + VCLXMenu* pAwtMenu = comphelper::getFromUnoTunnel<VCLXMenu>(m_xPopupMenu); + PopupMenu* pPopupMenu = static_cast< PopupMenu*>(pAwtMenu->GetMenu()); + pPopupMenu->Finish(); + SfxDispatcher_Impl::m_pActivePopupController = nullptr; delete this; } @@ -1815,15 +1827,11 @@ void SfxDispatcher::ExecutePopup( const OUString& rResName, vcl::Window* pWin, c const sal_Int16 nFlags = css::awt::PopupMenuDirection::EXECUTE_DOWN; const css::awt::Rectangle aRect(aPos.X(), aPos.Y(), 1, 1); css::uno::Reference<css::awt::XWindowPeer> xParent(aEvent.SourceWindow, css::uno::UNO_QUERY); - css::uno::Reference<css::awt::XPopupMenuAsync xAsyncPopup(xPopupMenu, css::uno::UNO_QUERY); - pFin = new SfxDispatcherPopupFinish(xPopupController, rCloseFunc, *pVCLMenu); + css::uno::Reference<css::awt::XPopupMenuAsync> xAsyncPopup(xPopupMenu, css::uno::UNO_QUERY); + pFin = new SfxDispatcherPopupFinish(xPopupController, rCloseFunc, xPopupMenu); SfxDispatcher_Impl::m_pActivePopupController = &pFin->m_xPopupController; - if (!rCloseFunc || !xAsyncPopup.is() || !xAsyncPopup->popup(pWindow, aRect, nFlags, pFin->m_xDialogListener)) - { - css::uno::Reference<css::uno::XInterface> xInterface(*pAwtMenu, css::uno::UNO_QUERY); - css::ui::dialogs::DialogClosedEvent aEvt(xInterface, xPopupMenu->execute(xParent, aRect, nFlags)); - pFin->m_xDialogListener->dialogClosed(aEvt); - } + if (!rCloseFunc || !xAsyncPopup.is() || !xAsyncPopup->popup(xParent, aRect, nFlags, pFin->m_xDialogListener)) + pFin->Finish(xPopupMenu->execute(xParent, aRect, nFlags)); } } diff --git a/solenv/bin/image-sort.py b/solenv/bin/image-sort.py index 75b5da6ce0e7..5d248684b4a6 100644 --- a/solenv/bin/image-sort.py +++ b/solenv/bin/image-sort.py @@ -30,7 +30,7 @@ def read_icons(fname): full_path = os.path.join(args.base_path, fname) if not os.path.exists(full_path): if not args.quiet: - print("Skipping non-existent {}\n".format(full_path), file=sys.stderr) + print("Skipping non-existent {}".format(full_path), file=sys.stderr) return images with open(full_path) as fp: for line in fp: diff --git a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk index 2f254057c957..fd96be05f17e 100644 --- a/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk +++ b/solenv/gbuild/platform/EMSCRIPTEN_INTEL_GCC.mk @@ -22,7 +22,7 @@ gb_EMSCRIPTEN_CPPFLAGS := -pthread -s USE_PTHREADS=1 # To keep the link time (and memory) down, prevent all rewriting options from wasm-emscripten-finalize # See emscrypten.py, finalize_wasm, modify_wasm = True # So we need WASM_BIGINT=1 and ASSERTIONS=1 (2 implies STACK_OVERFLOW_CHECK) -gb_EMSCRIPTEN_LDFLAGS := $(gb_EMSCRIPTEN_CPPFLAGS) --bind -s TOTAL_MEMORY=1GB -s PTHREAD_POOL_SIZE=4 -s FORCE_FILESYSTEM=1 -s WASM_BIGINT=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s FETCH=1 -s ASSERTIONS=1 -s EXIT_RUNTIME=0 -s EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"] +gb_EMSCRIPTEN_LDFLAGS := $(gb_EMSCRIPTEN_CPPFLAGS) --bind -s TOTAL_MEMORY=512MB -s PTHREAD_POOL_SIZE=4 -s FORCE_FILESYSTEM=1 -s WASM_BIGINT=1 -s ERROR_ON_UNDEFINED_SYMBOLS=1 -s FETCH=1 -s ASSERTIONS=1 -s EXIT_RUNTIME=0 -s EXPORTED_RUNTIME_METHODS=["UTF16ToString","stringToUTF16"] gb_EMSCRIPTEN_QTDEFS := -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB gb_Executable_EXT := .html diff --git a/static/CustomTarget_wasm_fs_image.mk b/static/CustomTarget_wasm_fs_image.mk index ff7182b6d203..c7f4ff76f930 100644 --- a/static/CustomTarget_wasm_fs_image.mk +++ b/static/CustomTarget_wasm_fs_image.mk @@ -1146,6 +1146,23 @@ gb_wasm_image_filelist := \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/fontconfig/conf.d/90-synthetic.conf \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/fontconfig/fonts.conf \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/fonts/truetype/fc_local.conf \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/gallery/fontwork.sdg \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/gallery/fontwork.sdv \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/gallery/fontwork.thm \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/calendar.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/collation.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/currency.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/number.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/timezone.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/transform_ime.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/transform_keyboard.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/transform_mt.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/transform_private_use.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/transform.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/bcp47/variant.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/supplemental/likelySubtags.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/common/supplemental/supplementalMetadata.xml \ + $(INSTROOT)/$(LIBO_SHARE_FOLDER)/liblangtag/language-subtag-registry.xml \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/registry/cjk.xcd \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/registry/ctlseqcheck.xcd \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/registry/ctl.xcd \ @@ -1169,6 +1186,7 @@ gb_wasm_image_filelist := \ $(INSTROOT)/$(LIBO_SHARE_RESOURCE_FOLDER)/common/fonts/opens___.ttf \ $(INSTROOT)/$(LIBO_URE_ETC_FOLDER)/$(call gb_Helper_get_rcfile,uno) \ $(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \ + $(SRCDIR)/android/default-document/example3.odt \ $(SRCDIR)/android/default-document/example.odt \ ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),) @@ -1413,7 +1431,7 @@ gb_wasm_image_filelist += \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/schart/ui/tp_Trendline.ui \ $(INSTROOT)/$(LIBO_SHARE_FOLDER)/config/soffice.cfg/modules/schart/ui/wizelementspage.ui \ -endif +endif # !ENABLE_WASM_STRIP_CHART wasm_fs_image_WORKDIR := $(call gb_CustomTarget_get_workdir,static/wasm_fs_image) diff --git a/static/soffice_args.js b/static/soffice_args.js index 4db43905aa07..df6d394f7b4b 100644 --- a/static/soffice_args.js +++ b/static/soffice_args.js @@ -1 +1,4 @@ -Module['arguments'] = ['/android/default-document/example.odt']; +Module['arguments'] = [ + '--norestore', + '/android/default-document/example.odt' +]; diff --git a/vcl/Module_vcl.mk b/vcl/Module_vcl.mk index 54f7bceea9cb..945e495d80ce 100644 --- a/vcl/Module_vcl.mk +++ b/vcl/Module_vcl.mk @@ -36,7 +36,7 @@ $(eval $(call gb_Module_add_targets,vcl,\ Package_skia_denylist ) \ $(if $(filter DESKTOP,$(BUILD_TYPE)), \ StaticLibrary_vclmain \ - $(if $(or $(DISABLE_GUI),$(DISABLE_DYNLOADING)),Executable_vcldemo, \ + $(if $(or $(DISABLE_GUI),$(DISABLE_DYNLOADING)),, \ $(if $(ENABLE_MACOSX_SANDBOX),, \ Executable_ui-previewer) \ $(if $(filter LINUX MACOSX SOLARIS WNT %BSD,$(OS)), \ diff --git a/vcl/inc/qt5/QtInstance.hxx b/vcl/inc/qt5/QtInstance.hxx index 674ba87428c1..c16dc1d03bc6 100644 --- a/vcl/inc/qt5/QtInstance.hxx +++ b/vcl/inc/qt5/QtInstance.hxx @@ -74,6 +74,7 @@ private Q_SLOTS: bool ImplYield(bool bWait, bool bHandleAllCurrentEvents); static void deleteObjectLater(QObject* pObject); static void localeChanged(); + void virtualGeometryChanged(const QRect& rect); Q_SIGNALS: bool ImplYieldSignal(bool bWait, bool bHandleAllCurrentEvents); diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx index 7c066c92f7f7..022915837d3c 100644 --- a/vcl/qt5/QtFrame.cxx +++ b/vcl/qt5/QtFrame.cxx @@ -149,10 +149,10 @@ QtFrame::QtFrame(QtFrame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) else if (nStyle & SalFrameStyleFlags::TOOLTIP) aWinFlags = Qt::ToolTip; // Can't use Qt::Popup, because it grabs the input focus and generates - // a focus-out event, reaching the combo box. This used to map to - // Qt::ToolTip, which doesn't feel that correct... + // a focus-out event, reaching the combo box. So we could also use + // aWinFlags = Qt::Window | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint; else if (isPopup()) - aWinFlags = Qt::Window | Qt::FramelessWindowHint | Qt::BypassWindowManagerHint; + aWinFlags = Qt::ToolTip | Qt::FramelessWindowHint; else if (nStyle & SalFrameStyleFlags::TOOLWINDOW) aWinFlags = Qt::Tool; // top level windows can't be transient in Qt, so make them dialogs, if they have a parent. At least @@ -176,8 +176,8 @@ QtFrame::QtFrame(QtFrame* pParent, SalFrameStyleFlags nStyle, bool bUseCairo) if (pParent && !(pParent->m_nStyle & SalFrameStyleFlags::PLUG)) { - QWindow* pParentWindow = pParent->GetQWidget()->window()->windowHandle(); - QWindow* pChildWindow = asChild()->window()->windowHandle(); + QWindow* pParentWindow = pParent->windowHandle(); + QWindow* pChildWindow = windowHandle(); if (pParentWindow && pChildWindow && (pParentWindow != pChildWindow)) pChildWindow->setTransientParent(pParentWindow); } @@ -351,7 +351,11 @@ QWindow* QtFrame::windowHandle() const { // set attribute 'Qt::WA_NativeWindow' first to make sure a window handle actually exists QWidget* pChild = asChild(); + assert(pChild->window() == pChild); +#ifndef EMSCRIPTEN + // no idea, why this breaks the menubar for EMSCRIPTEN pChild->setAttribute(Qt::WA_NativeWindow); +#endif return pChild->windowHandle(); } @@ -430,21 +434,27 @@ void QtFrame::modalReparent(bool bVisible) if (!bVisible) { - m_pQWidget->setParent(m_pParent ? m_pParent->asChild() : nullptr, - m_pQWidget->windowFlags()); + QWidget* pNewParent = m_pParent ? m_pParent->asChild() : nullptr; + if (pNewParent != m_pQWidget->parent()) + m_pQWidget->setParent(pNewParent, m_pQWidget->windowFlags()); return; } if (!QGuiApplication::modalWindow()) return; + if (m_pParent->windowHandle() == QGuiApplication::modalWindow()) + return; + QtInstance* pInst = static_cast<QtInstance*>(GetSalData()->m_pInstance); for (auto* pFrame : pInst->getFrames()) { - QWidget* pQWidget = static_cast<QtFrame*>(pFrame)->asChild(); - if (pQWidget->windowHandle() == QGuiApplication::modalWindow()) + QtFrame* pQtFrame = static_cast<QtFrame*>(pFrame); + if (pQtFrame->windowHandle() == QGuiApplication::modalWindow()) { - m_pQWidget->setParent(pQWidget, m_pQWidget->windowFlags()); + QWidget* pNewParent = pQtFrame->asChild(); + if (pNewParent != m_pQWidget->parent()) + m_pQWidget->setParent(pNewParent, m_pQWidget->windowFlags()); break; } } @@ -462,7 +472,7 @@ void QtFrame::Show(bool bVisible, bool bNoActivate) if (!bVisible) // hide { pSalInst->RunInMainThread([this]() { - asChild()->hide(); + asChild()->setVisible(false); if (m_pQWidget->isModal()) modalReparent(false); }); @@ -477,9 +487,9 @@ void QtFrame::Show(bool bVisible, bool bNoActivate) QWidget* const pChild = asChild(); if (m_pQWidget->isModal()) modalReparent(true); - pChild->show(); + pChild->setVisible(true); pChild->raise(); - if (!bNoActivate && !isPopup()) + if (!bNoActivate) { pChild->activateWindow(); pChild->setFocus(); diff --git a/vcl/qt5/QtInstance.cxx b/vcl/qt5/QtInstance.cxx index 00cff01f0d74..6074d8ada93e 100644 --- a/vcl/qt5/QtInstance.cxx +++ b/vcl/qt5/QtInstance.cxx @@ -40,6 +40,7 @@ #include <QtCore/QAbstractEventDispatcher> #include <QtCore/QThread> +#include <QtGui/QScreen> #include <QtWidgets/QApplication> #include <QtWidgets/QWidget> @@ -248,6 +249,10 @@ QtInstance::QtInstance(std::unique_ptr<QApplication>& pQApp, bool bUseCairo) connect(QGuiApplication::inputMethod(), &QInputMethod::localeChanged, this, &QtInstance::localeChanged); + for (const QScreen* pCurScreen : QApplication::screens()) + connect(pCurScreen, &QScreen::virtualGeometryChanged, this, + &QtInstance::virtualGeometryChanged); + #ifndef EMSCRIPTEN m_bSupportsOpenGL = true; #endif @@ -602,6 +607,13 @@ void* QtInstance::CreateGStreamerSink(const SystemChildWindow* pWindow) #endif } +void QtInstance::virtualGeometryChanged(const QRect&) +{ + SalFrame* pAnyFrame = anyFrame(); + if (pAnyFrame) + pAnyFrame->CallCallback(SalEvent::DisplayChanged, nullptr); +} + void QtInstance::AllocFakeCmdlineArgs(std::unique_ptr<char* []>& rFakeArgv, std::unique_ptr<int>& rFakeArgc, std::vector<FreeableCStr>& rFakeArgvFreeable) diff --git a/vcl/qt5/QtWidget.cxx b/vcl/qt5/QtWidget.cxx index 3078a7133764..edad48d660f8 100644 --- a/vcl/qt5/QtWidget.cxx +++ b/vcl/qt5/QtWidget.cxx @@ -630,7 +630,10 @@ QtWidget::QtWidget(QtFrame& rFrame, Qt::WindowFlags f) { create(); setMouseTracking(true); - setFocusPolicy(Qt::StrongFocus); + if (!rFrame.isPopup()) + setFocusPolicy(Qt::StrongFocus); + else + setFocusPolicy(Qt::ClickFocus); } static ExtTextInputAttr lcl_MapUndrelineStyle(QTextCharFormat::UnderlineStyle us) diff --git a/xmloff/Library_xo.mk b/xmloff/Library_xo.mk index 7486996d194b..ec98dc671fb6 100644 --- a/xmloff/Library_xo.mk +++ b/xmloff/Library_xo.mk @@ -21,9 +21,9 @@ $(eval $(call gb_Library_Library,xo)) $(eval $(call gb_Library_set_componentfiles,xo, \ xmloff/util/xo \ + xmloff/util/xo.draw \ $(if $(ENABLE_WASM_STRIP_CHART),,xmloff/util/xo.chart) \ $(if $(ENABLE_WASM_STRIP_BASIC_CALC_DRAW_MATH_IMPRESS),, \ - xmloff/util/xo.draw \ xmloff/util/xo.impress \ xmloff/util/xo.writer \ ) \ |