summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comphelper/source/misc/lok.cxx6
-rw-r--r--desktop/source/lib/init.cxx3
-rw-r--r--include/comphelper/lok.hxx10
-rw-r--r--sc/source/ui/view/gridwin4.cxx9
4 files changed, 25 insertions, 3 deletions
diff --git a/comphelper/source/misc/lok.cxx b/comphelper/source/misc/lok.cxx
index e5f3573cb391..4e8f7af1f672 100644
--- a/comphelper/source/misc/lok.cxx
+++ b/comphelper/source/misc/lok.cxx
@@ -36,6 +36,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 hi-dpi or zooming in Calc.
@@ -131,6 +133,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 ecb3ab752ae8..7ff364ca92e9 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -4890,6 +4890,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 a2b7eb02bef3..34b4259e60dc 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 99329375b2c2..4d89d32dc755 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));