summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comphelper/source/misc/lok.cxx24
-rw-r--r--desktop/source/lib/init.cxx4
-rw-r--r--embeddedobj/source/commonembedding/embedobj.cxx2
-rw-r--r--include/comphelper/lok.hxx4
-rw-r--r--sc/source/ui/condformat/condformatdlg.cxx3
-rw-r--r--sc/source/ui/condformat/condformatdlgentry.cxx3
6 files changed, 27 insertions, 13 deletions
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx
index 0969b5399bd4..253d94500f13 100644
--- a/comphelper/source/misc/lok.cxx
+++ b/comphelper/source/misc/lok.cxx
@@ -12,6 +12,7 @@
#include <sal/log.hxx>
#include <iostream>
+#include <map>
namespace comphelper
{
@@ -21,8 +22,6 @@ namespace LibreOfficeKit
static bool g_bActive(false);
-static bool g_bMobile(false);
-
static bool g_bPartInInvalidation(false);
static bool g_bTiledPainting(false);
@@ -44,6 +43,9 @@ static LanguageTag g_aLanguageTag("en-US", true);
/// Scaling of the cairo or CoreGraphics canvas painting for HiDPI or zooming in Calc.
static double g_fDPIScale(1.0);
+/// List of <viewid, bMobile> pairs
+static std::map<int, bool> g_vIsViewMobile;
+
void setActive(bool bActive)
{
g_bActive = bActive;
@@ -54,14 +56,24 @@ bool isActive()
return g_bActive;
}
-void setMobile(bool bIsMobile)
+void setMobile(int nViewId, bool bMobile)
{
- g_bMobile = bIsMobile;
+ if (g_vIsViewMobile.find(nViewId) != g_vIsViewMobile.end())
+ g_vIsViewMobile[nViewId] = bMobile;
+ else
+ g_vIsViewMobile.insert(std::make_pair(nViewId, bMobile));
}
-bool isMobile()
+bool isMobile(int nViewId)
{
- return g_bMobile;
+ // No view given, so act as a global var
+ if (nViewId == -1)
+ return g_vIsViewMobile.size() > 0;
+
+ if (g_vIsViewMobile.find(nViewId) != g_vIsViewMobile.end())
+ return g_vIsViewMobile[nViewId];
+ else
+ return false;
}
void setPartInInvalidation(bool bPartInInvalidation)
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 3c81ae6b400d..d7b920632fbf 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -3214,12 +3214,12 @@ static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pComma
// Set/unset mobile view for LOK
if (gImpl && aCommand == ".uno:LOKSetMobile")
{
- comphelper::LibreOfficeKit::setMobile();
+ comphelper::LibreOfficeKit::setMobile(nView);
return;
}
else if (gImpl && aCommand == ".uno:LOKUnSetMobile")
{
- comphelper::LibreOfficeKit::setMobile(false);
+ comphelper::LibreOfficeKit::setMobile(nView, false);
return;
}
diff --git a/embeddedobj/source/commonembedding/embedobj.cxx b/embeddedobj/source/commonembedding/embedobj.cxx
index 7bed8710ba2c..ab91814943bb 100644
--- a/embeddedobj/source/commonembedding/embedobj.cxx
+++ b/embeddedobj/source/commonembedding/embedobj.cxx
@@ -227,7 +227,7 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
}
else
{
- if(comphelper::LibreOfficeKit::isActive() && comphelper::LibreOfficeKit::isMobile())
+ if(comphelper::LibreOfficeKit::isActive() && comphelper::LibreOfficeKit::isMobile(-1))
{
// Disable embedded object editing (e.g. chart) on mobile
if(nNextState == embed::EmbedStates::INPLACE_ACTIVE || nNextState == embed::EmbedStates::UI_ACTIVE)
diff --git a/include/comphelper/lok.hxx b/include/comphelper/lok.hxx
index 3ced9d7b8905..22d2c6931ab3 100644
--- a/include/comphelper/lok.hxx
+++ b/include/comphelper/lok.hxx
@@ -30,7 +30,7 @@ namespace LibreOfficeKit
COMPHELPER_DLLPUBLIC void setActive(bool bActive = true);
// Set LOK view to mobile
-COMPHELPER_DLLPUBLIC void setMobile(bool bIsMobile = true);
+COMPHELPER_DLLPUBLIC void setMobile(int nViewId, bool bIsMobile = true);
enum class statusIndicatorCallbackType { Start, SetValue, Finish };
@@ -43,7 +43,7 @@ COMPHELPER_DLLPUBLIC void setStatusIndicatorCallback(void (*callback)(void *data
COMPHELPER_DLLPUBLIC bool isActive();
// Check whether we are serving to a mobile view/device
-COMPHELPER_DLLPUBLIC bool isMobile();
+COMPHELPER_DLLPUBLIC bool isMobile(int nViewId);
/// Shift the coordinates before rendering each bitmap.
/// Used by Calc to render each tile separately.
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index 0fc144bf897b..fca7434887e1 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -11,6 +11,7 @@
#include <condformatdlg.hxx>
#include <sfx2/dispatch.hxx>
+#include <sfx2/lokhelper.hxx>
#include <vcl/settings.hxx>
#include <vcl/svapp.hxx>
@@ -411,7 +412,7 @@ ScCondFormatDlg::ScCondFormatDlg(SfxBindings* pB, SfxChildWindow* pCW,
weld::Window* pParent, ScViewData* pViewData,
const ScCondFormatDlgItem* pItem)
: ScAnyRefDlgController(pB, pCW, pParent,
- (comphelper::LibreOfficeKit::isMobile()?OUString("modules/scalc/ui/conditionalformatdialogmobile.ui"):OUString("modules/scalc/ui/conditionalformatdialog.ui")),
+ (comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView())?OUString("modules/scalc/ui/conditionalformatdialogmobile.ui"):OUString("modules/scalc/ui/conditionalformatdialog.ui")),
"ConditionalFormatDialog")
, mpViewData(pViewData)
, mpDlgItem(static_cast<ScCondFormatDlgItem*>(pItem->Clone()))
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index 2e4039004644..9e4c16667add 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -20,6 +20,7 @@
#include <svl/style.hxx>
#include <sfx2/dispatch.hxx>
#include <sfx2/frame.hxx>
+#include <sfx2/lokhelper.hxx>
#include <svl/stritem.hxx>
#include <svl/intitem.hxx>
#include <svx/colorbox.hxx>
@@ -42,7 +43,7 @@
ScCondFrmtEntry::ScCondFrmtEntry(ScCondFormatList* pParent, ScDocument* pDoc, const ScAddress& rPos)
: mpParent(pParent)
- , mxBuilder(Application::CreateBuilder(pParent->GetContainer(), (comphelper::LibreOfficeKit::isMobile()?OUString("modules/scalc/ui/conditionalentrymobile.ui"):OUString("modules/scalc/ui/conditionalentry.ui"))))
+ , mxBuilder(Application::CreateBuilder(pParent->GetContainer(), (comphelper::LibreOfficeKit::isMobile(SfxLokHelper::getView())?OUString("modules/scalc/ui/conditionalentrymobile.ui"):OUString("modules/scalc/ui/conditionalentry.ui"))))
, mxBorder(mxBuilder->weld_widget("border"))
, mxGrid(mxBuilder->weld_container("grid"))
, mxFtCondNr(mxBuilder->weld_label("number"))