Kaydet (Commit) 7b148b0e authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski

WIN move native dialog hack into WinScheduler

The "hides" the hack for native Windows dialogs introduced in
commit 5bb798a9 ("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: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
üst e07f85a6
......@@ -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) \
))
......
......@@ -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);
......
/* -*- 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: */
......@@ -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 \
......
/* -*- 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: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment