[Libreoffice-commits] core.git: embeddedobj/Library_emboleobj.mk embeddedobj/source include/vcl vcl/Library_vcl.mk vcl/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Thu Dec 13 15:34:26 UTC 2018


 embeddedobj/Library_emboleobj.mk            |    1 
 embeddedobj/source/msole/xdialogcreator.cxx |    8 +----
 include/vcl/winscheduler.hxx                |   39 ++++++++++++++++++++++++++++
 vcl/Library_vcl.mk                          |    1 
 vcl/source/app/winscheduler.cxx             |   37 ++++++++++++++++++++++++++
 5 files changed, 79 insertions(+), 7 deletions(-)

New commits:
commit 7b148b0edfb217196c171f8e64e79b49669fc36f
Author:     Jan-Marek Glogowski <glogow at fbihome.de>
AuthorDate: Thu Dec 13 11:50:41 2018 +0100
Commit:     Jan-Marek Glogowski <glogow at fbihome.de>
CommitDate: Thu Dec 13 16:33:58 2018 +0100

    WIN move native dialog hack into WinScheduler
    
    The "hides" the hack for native Windows dialogs introduced in
    commit 5bb798a99e7b ("tdf#117295 WIN no main loop shortcut for
    OLE dialog") in its own header.
    
    Change-Id: I1f36aad20dec50ae1f296001b51085989afb19f6
    Reviewed-on: https://gerrit.libreoffice.org/65100
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glogow at fbihome.de>

diff --git a/embeddedobj/Library_emboleobj.mk b/embeddedobj/Library_emboleobj.mk
index 3bfbec56d89d..9e3c1b5950d2 100644
--- a/embeddedobj/Library_emboleobj.mk
+++ b/embeddedobj/Library_emboleobj.mk
@@ -14,7 +14,6 @@ $(eval $(call gb_Library_set_componentfile,emboleobj,embeddedobj/source/msole/em
 
 $(eval $(call gb_Library_set_include,emboleobj,\
 	-I$(SRCDIR)/embeddedobj/source/inc \
-	$(if $(filter WNT,$(OS)),-I$(SRCDIR)/vcl/inc) \
 	$$(INCLUDE) \
 ))
 
diff --git a/embeddedobj/source/msole/xdialogcreator.cxx b/embeddedobj/source/msole/xdialogcreator.cxx
index be26a300d298..836f198eb867 100644
--- a/embeddedobj/source/msole/xdialogcreator.cxx
+++ b/embeddedobj/source/msole/xdialogcreator.cxx
@@ -43,10 +43,7 @@
 #ifdef _WIN32
 
 #include <oledlg.h>
-
-#include <svsys.h>
-#include <win/saldata.hxx>
-#include <win/salinst.h>
+#include <vcl/winscheduler.hxx>
 
 class InitializedOleGuard
 {
@@ -180,8 +177,7 @@ embed::InsertedObjectInfo SAL_CALL MSOLEDialogObjectCreator::createInstanceByDia
 
     // Disable any event loop shortcuts by enabling a real timer.
     // This way the native windows dialog won't block our own processing.
-    BOOL const ret = PostMessageW(GetSalData()->mpInstance->mhComWnd, SAL_MSG_FORCE_REAL_TIMER, 0, 0);
-    SAL_WARN_IF(0 == ret, "embeddedobj.ole", "ERROR: PostMessage() failed!");
+    WinScheduler::SetForceRealTimer();
 
     uTemp=pInsertFct(&io);
 
diff --git a/include/vcl/winscheduler.hxx b/include/vcl/winscheduler.hxx
new file mode 100644
index 000000000000..02d86116bb38
--- /dev/null
+++ b/include/vcl/winscheduler.hxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_VCL_WINSCHEDULER_HXX
+#define INCLUDED_VCL_WINSCHEDULER_HXX
+
+#ifndef _WIN32
+#error This header is just useable on Windows
+#else
+
+#include <vcl/dllapi.h>
+
+struct VCL_DLLPUBLIC WinScheduler final
+{
+    /// Hack for Windows native dialogs, which run the main loop, so we can't
+    /// use the direct processing shortcut.
+    static void SetForceRealTimer();
+};
+
+#endif // _WIN32
+#endif // INCLUDED_VCL_WINSCHEDULER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index 4bd1469a6d34..da9bc387ca2f 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -380,6 +380,7 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
     vcl/source/app/unohelp2 \
     vcl/source/app/unohelp \
     vcl/source/app/vclevent \
+    vcl/source/app/winscheduler \
     vcl/source/components/dtranscomp \
     vcl/source/components/factory \
     vcl/source/components/fontident \
diff --git a/vcl/source/app/winscheduler.cxx b/vcl/source/app/winscheduler.cxx
new file mode 100644
index 000000000000..f8a90f3f638d
--- /dev/null
+++ b/vcl/source/app/winscheduler.cxx
@@ -0,0 +1,37 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifdef _WIN32
+
+#include <vcl/winscheduler.hxx>
+
+#include <svsys.h>
+#include <win/saldata.hxx>
+#include <win/salinst.h>
+
+void WinScheduler::SetForceRealTimer()
+{
+    BOOL const ret
+        = PostMessageW(GetSalData()->mpInstance->mhComWnd, SAL_MSG_FORCE_REAL_TIMER, 0, 0);
+    SAL_WARN_IF(0 == ret, "vcl.schedule", "ERROR: PostMessage() failed!");
+}
+
+#endif // _WIN32
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list