diff options
author | Tor Lillqvist <tml@collabora.com> | 2015-03-29 22:59:22 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2015-04-01 13:50:35 +0300 |
commit | 8955af9b2b3d29118d314c77092c5c4c0f8e456c (patch) | |
tree | 4354888eafd373a052d837c952c9c6e3f8cb47c2 | |
parent | 2fc4a8c8113b1bf78258845ed06662a07996a6af (diff) |
Add API to check whether being used through LibreOfficeKit
LibreOffice code, when used in a program through LibreOfficeKit, needs to be
aware of that in certain crucial spots, to avoid behaviour and functionality
that makes no sense in a LibreOfficeKit scenario. As LibreOfficeKit uses a
normal LibreOffice installation to perform its job, this can't be a
compile-time choice. Also, none of the existing run-time "headlessness" modes
fully match what is needed.
Change-Id: Iaccf7f958c549f019b508854800519f54dcadb11
-rw-r--r-- | desktop/source/lib/init.cxx | 3 | ||||
-rw-r--r-- | include/osl/lok.hxx | 34 | ||||
-rw-r--r-- | sal/osl/all/utility.cxx | 20 | ||||
-rw-r--r-- | sal/util/sal.map | 5 |
4 files changed, 61 insertions, 1 deletions
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index bdab4850f4e2..f6aa90f2d246 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -22,6 +22,7 @@ #include <tools/errinf.hxx> #include <osl/file.hxx> +#include <osl/lok.hxx> #include <osl/process.h> #include <osl/thread.h> #include <rtl/strbuf.hxx> @@ -852,6 +853,8 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath) if (bInitialized) return 1; + osl::LibreOfficeKit::setActive(); + OUString aAppPath; if (pAppPath) { diff --git a/include/osl/lok.hxx b/include/osl/lok.hxx new file mode 100644 index 000000000000..3b241ef49748 --- /dev/null +++ b/include/osl/lok.hxx @@ -0,0 +1,34 @@ +/* -*- 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/. + */ + +#ifndef INCLUDED_OSL_LOK_HXX +#define INCLUDED_OSL_LOK_HXX + +#ifdef LIBO_INTERNAL_ONLY + +#include <sal/saldllapi.h> + +namespace osl +{ + +namespace LibreOfficeKit +{ + +SAL_DLLPUBLIC void setActive(); + +SAL_DLLPUBLIC bool isActive(); + +} +} + +#endif // LIBO_INTERNAL_ONLY + +#endif // INCLUDED_OSL_LOK_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/osl/all/utility.cxx b/sal/osl/all/utility.cxx index 98bc12f47090..a84111ce7c36 100644 --- a/sal/osl/all/utility.cxx +++ b/sal/osl/all/utility.cxx @@ -17,7 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include "osl/time.h" +#include <osl/lok.hxx> +#include <osl/time.h> /* * mfe : maybe it would be wishful to include initialization @@ -45,5 +46,22 @@ public: static OGlobalTimer aGlobalTimer; +namespace LibreOfficeKit +{ + +static bool bActive(false); + +void setActive() +{ + bActive = true; } + +bool isActive() +{ + return bActive; +} + +} // namespace LibreOfficeKit +} // namespace osl + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sal/util/sal.map b/sal/util/sal.map index 2a87243e4813..c8bcdbab7699 100644 --- a/sal/util/sal.map +++ b/sal/util/sal.map @@ -713,6 +713,11 @@ PRIVATE_textenc.1 { # LibreOffice 3.6 _ZN3sal6detail7textenc37handleBadInputUnicodeToTextConversion*; }; +PRIVATE_4.5 { # LibreOffice 4.5 + _ZN3osl14LibreOfficeKit8isActive*; + _ZN3osl14LibreOfficeKit9setActive*; +}; + # Unique libstdc++ symbols: GLIBCXX_3.4 { global: |