[Libreoffice-commits] core.git: comphelper/source desktop/source include/comphelper sc/source
Mike Kaganski (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jul 23 13:55:44 UTC 2019
comphelper/source/misc/lok.cxx | 6 ++++++
desktop/source/lib/init.cxx | 3 +++
include/comphelper/lok.hxx | 10 ++++++++++
sc/source/ui/view/gridwin4.cxx | 9 ++++++---
4 files changed, 25 insertions(+), 3 deletions(-)
New commits:
commit 91a3f58ec3ac7998688cab665322d26d5aa3b015
Author: Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Fri Jul 12 20:01:57 2019 +1000
Commit: Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Tue Jul 23 15:54:48 2019 +0200
Don't draw gridlines and document background in Online server process
... see https://gerrit.libreoffice.org/72417
They will be drawn client-side. Borders and explicit cell background are
still drawn in core. This mode is activated using "sc_no_grid_bg" option
in SAL_LOK_OPTIONS environment variable.
Change-Id: Ie10e7770b8168ec648d44ae5af0a0a0602d89ee6
Reviewed-on: https://gerrit.libreoffice.org/75484
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx
index 0ea263f20885..0c43c3fc0822 100644
--- a/comphelper/source/misc/lok.cxx
+++ b/comphelper/source/misc/lok.cxx
@@ -35,6 +35,8 @@ static bool g_bViewIdForVisCursorInvalidation(false);
static bool g_bLocalRendering(false);
+static Compat g_eCompatFlags(Compat::none);
+
static LanguageTag g_aLanguageTag("en-US", true);
/// Scaling of the cairo or CoreGraphics canvas painting for HiDPI or zooming in Calc.
@@ -130,6 +132,10 @@ bool isLocalRendering()
return g_bLocalRendering;
}
+void setCompatFlag(Compat flag) { g_eCompatFlags = static_cast<Compat>(g_eCompatFlags | flag); }
+
+bool isCompatFlagSet(Compat flag) { return (g_eCompatFlags & flag) == flag; }
+
void setLanguageTag(const LanguageTag& languageTag)
{
if (g_aLanguageTag != languageTag)
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 1a18e296a092..b553ba6b8b17 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -4909,6 +4909,9 @@ static int lo_initialize(LibreOfficeKit* pThis, const char* pAppPath, const char
bUnipoll = true;
else if (it == "profile_events")
bProfileZones = true;
+ else if (it == "sc_no_grid_bg")
+ comphelper::LibreOfficeKit::setCompatFlag(
+ comphelper::LibreOfficeKit::Compat::scNoGridBackground);
}
}
diff --git a/include/comphelper/lok.hxx b/include/comphelper/lok.hxx
index 5f132f9d15f8..aaa3b48e6ae0 100644
--- a/include/comphelper/lok.hxx
+++ b/include/comphelper/lok.hxx
@@ -72,6 +72,16 @@ COMPHELPER_DLLPUBLIC void setRangeHeaders(bool bTiledAnnotations);
/// Check if range based header data is enabled
COMPHELPER_DLLPUBLIC bool isRangeHeaders();
+enum Compat : sal_uInt32
+{
+ none = 0,
+ scNoGridBackground = 1,
+};
+/// Set compatibility flags
+COMPHELPER_DLLPUBLIC void setCompatFlag(Compat flag);
+/// Get compatibility flags
+COMPHELPER_DLLPUBLIC bool isCompatFlagSet(Compat flag);
+
/// Check whether clients want viewId in visible cursor invalidation payload.
COMPHELPER_DLLPUBLIC bool isViewIdForVisCursorInvalidation();
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 5e1280cbd98f..8fc6391a665e 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -527,6 +527,9 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
ScDocument& rDoc = *pViewData->GetDocument();
const ScViewOptions& rOpts = pViewData->GetOptions();
bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive();
+ bool bNoBackgroundAndGrid = bIsTiledRendering
+ && comphelper::LibreOfficeKit::isCompatFlagSet(
+ comphelper::LibreOfficeKit::Compat::scNoGridBackground);
SCTAB nTab = aOutputData.nTab;
SCCOL nX1 = aOutputData.nX1;
@@ -710,16 +713,16 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
DrawRedraw( aOutputData, SC_LAYER_BACK );
}
else
- aOutputData.SetSolidBackground(true);
+ aOutputData.SetSolidBackground(!bNoBackgroundAndGrid);
aOutputData.DrawDocumentBackground();
- if ( bGridFirst && ( bGrid || bPage ) )
+ if (bGridFirst && (bGrid || bPage) && !bNoBackgroundAndGrid)
aOutputData.DrawGrid(*pContentDev, bGrid, bPage);
aOutputData.DrawBackground(*pContentDev);
- if ( !bGridFirst && ( bGrid || bPage ) )
+ if (!bGridFirst && (bGrid || bPage) && !bNoBackgroundAndGrid)
aOutputData.DrawGrid(*pContentDev, bGrid, bPage);
pContentDev->SetMapMode(MapMode(MapUnit::MapPixel));
More information about the Libreoffice-commits
mailing list