summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2015-03-29 22:59:22 +0300
committerTor Lillqvist <tml@collabora.com>2015-04-01 13:50:35 +0300
commit8955af9b2b3d29118d314c77092c5c4c0f8e456c (patch)
tree4354888eafd373a052d837c952c9c6e3f8cb47c2
parent2fc4a8c8113b1bf78258845ed06662a07996a6af (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.cxx3
-rw-r--r--include/osl/lok.hxx34
-rw-r--r--sal/osl/all/utility.cxx20
-rw-r--r--sal/util/sal.map5
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: