[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