sc/source/ui/view/gridwin4.cxx |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

New commits:
commit 75dba661d97c625fee8fd2b80c90b9adba9aeffb
Author: Caolán McNamara <>
Date:   Thu Apr 12 14:53:20 2018 +0100

    Related: tdf#100925 background not getting set under X sometimes
    not sure why this is the case, but it is reminiscent of rhbz#1283420 which
    results in missing glyphs in some circumstances
    X11CairoTextRender::getCairoContext has a hack in it for that problem, whic
    forces a read from the underlying X Drawable before writing to it which 
    to have the effect of syncing it up.
    So, just before drawing the bg, draw a glyph on it to get it synced, and 
    overwrite it.
    Change-Id: I2ffff7e8e989b91821869d8b75a59728ac513d1b
    Tested-by: Jenkins <>
    Reviewed-by: Caolán McNamara <>
    Tested-by: Caolán McNamara <>

diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 0561a41c3d9f..a808522032e8 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -1021,7 +1021,12 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, 
const ScTableInfo& rTableI
         // paint the background
-        rDevice.DrawRect(rDevice.PixelToLogic(aBackground));
+        tools::Rectangle aLogicRect(rDevice.PixelToLogic(aBackground));
+        //tdf#100925, rhbz#1283420, Draw some text here, to get
+        //X11CairoTextRender::getCairoContext called, so that the forced read
+        //from the underlying X Drawable gets it to sync.
+        rDevice.DrawText(aLogicRect.BottomLeft(), " ");
+        rDevice.DrawRect(aLogicRect);
         // paint the editeng text
         tools::Rectangle aEditRect(Point(nScrX, nScrY), 
Size(aOutputData.GetScrW(), aOutputData.GetScrH()));
Libreoffice-commits mailing list

Reply via email to