[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - embeddedobj/source include/vcl vcl/inc vcl/Library_vcl.mk vcl/source vcl/win

2019-01-16 Thread Libreoffice Gerrit user
 embeddedobj/source/msole/xdialogcreator.cxx |5 +++
 include/vcl/winscheduler.hxx|   39 
 vcl/Library_vcl.mk  |1 
 vcl/inc/win/saldata.hxx |2 +
 vcl/source/app/winscheduler.cxx |   37 ++
 vcl/win/app/salinst.cxx |5 +++
 6 files changed, 89 insertions(+)

New commits:
commit 3376b0e94f0638c927a37c32322bf67d42ebb00f
Author: Jan-Marek Glogowski 
AuthorDate: Wed Dec 12 16:11:35 2018 +0100
Commit: Michael Stahl 
CommitDate: Wed Jan 16 13:05:12 2019 +0100

tdf#117295 WIN no main loop shortcut for OLE dialog

Normally we handle Idle events directly without posting events
to the main event queue, as there seem to be no way to post them
to the end of the queue and this starves system events.

This prevents using this short-cut, as the default Windows event
processing doesn't know of this special handling.
Eventually this hack should be removed by simply always processing
all pending events...

This patch includes the follow-up commit 7b148b0edfb2 ("WIN move
native dialog hack into WinScheduler").

Change-Id: If9ae81ca7e847743f9251343e106dbf566371584
Reviewed-on: https://gerrit.libreoffice.org/65040
Reviewed-on: https://gerrit.libreoffice.org/65100
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski 
(cherry picked from commit 5bb798a99e7b178ac57ee8c15238534723000bf9)
(cherry picked from commit 7b148b0edfb217196c171f8e64e79b49669fc36f)
Reviewed-on: https://gerrit.libreoffice.org/65065
(cherry picked from commit 3e3c3619fe695fea25d10a9bae0442317feca0cd)
Reviewed-on: https://gerrit.libreoffice.org/65170
Reviewed-by: Michael Stahl 

diff --git a/embeddedobj/source/msole/xdialogcreator.cxx 
b/embeddedobj/source/msole/xdialogcreator.cxx
index 44141b5101f8..3c9f529d0d5c 100644
--- a/embeddedobj/source/msole/xdialogcreator.cxx
+++ b/embeddedobj/source/msole/xdialogcreator.cxx
@@ -43,6 +43,7 @@
 #ifdef _WIN32
 
 #include 
+#include 
 
 class InitializedOleGuard
 {
@@ -174,6 +175,10 @@ embed::InsertedObjectInfo SAL_CALL 
MSOLEDialogObjectCreator::createInstanceByDia
 if( !pInsertFct )
 throw uno::RuntimeException();
 
+// Disable any event loop shortcuts by enabling a real timer.
+// This way the native windows dialog won't block our own processing.
+WinScheduler::SetForceRealTimer();
+
 uTemp=pInsertFct();
 
 if ( OLEUI_OK != uTemp )
diff --git a/include/vcl/winscheduler.hxx b/include/vcl/winscheduler.hxx
new file mode 100644
index ..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 
+
+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 38a2460cf81f..ae7622dacae3 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -377,6 +377,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/inc/win/saldata.hxx b/vcl/inc/win/saldata.hxx
index 8f5a3b87b415..3f2c77ed4a80 100644
--- a/vcl/inc/win/saldata.hxx
+++ b/vcl/inc/win/saldata.hxx
@@ -270,6 +270,8 @@ int ImplSalWICompareAscii( const wchar_t* pStr1, const 
char* pStr2 );
 #define SAL_MSG_TIMER_CALLBACK  (WM_USER+162)
 // Stop the timer from the main thread; wParam = 0, lParam = 0
 #define 

[Libreoffice-commits] core.git: Branch 'libreoffice-6-1' - embeddedobj/source

2018-07-25 Thread Libreoffice Gerrit user
 embeddedobj/source/msole/oleembed.cxx |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

New commits:
commit acab09f06fd3016ec551065fadabce8768353c89
Author: Caolán McNamara 
AuthorDate: Wed Jul 25 09:09:15 2018 +0100
Commit: Eike Rathke 
CommitDate: Thu Jul 26 00:19:50 2018 +0200

Resolves: tdf#118919 crash on double click ole object

Change-Id: Id7b3df447db56f6f80d6255dabdcc7f6ab149e95
Reviewed-on: https://gerrit.libreoffice.org/57954
Tested-by: Jenkins
Reviewed-by: Eike Rathke 

diff --git a/embeddedobj/source/msole/oleembed.cxx 
b/embeddedobj/source/msole/oleembed.cxx
index 64d95c3d7a56..77a022442917 100644
--- a/embeddedobj/source/msole/oleembed.cxx
+++ b/embeddedobj/source/msole/oleembed.cxx
@@ -658,7 +658,7 @@ namespace
 {
 bool lcl_CopyStream(const uno::Reference& xIn, const 
uno::Reference& xOut, sal_Int32 nMaxCopy = SAL_MAX_INT32)
 {
-if (nMaxCopy == 0)
+if (nMaxCopy <= 0)
 return false;
 
 const sal_Int32 nChunkSize = 4096;
___
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits