From 75dba661d97c625fee8fd2b80c90b9adba9aeffb Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 12 Apr 2018 14:53:20 +0100 Subject: Related: tdf#100925 background not getting set under X sometimes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 seems to have the effect of syncing it up. So, just before drawing the bg, draw a glyph on it to get it synced, and then overwrite it. Change-Id: I2ffff7e8e989b91821869d8b75a59728ac513d1b Reviewed-on: https://gerrit.libreoffice.org/52810 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- sc/source/ui/view/gridwin4.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'sc/source/ui/view/gridwin4.cxx') 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())); -- cgit