summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2017-07-13 13:30:20 +0200
committerCaolán McNamara <caolanm@redhat.com>2017-07-16 17:24:54 +0200
commit35f8c78b5fbdbb3619b1c0f9fdee5f84ac1a6f73 (patch)
tree5cadb212937f7a635d1f1259b1c56bb42e5848b2
parentd520837ca24fbe0ba8f0ed9043bf7ddca354e032 (diff)
tdf#107166 BindDC doesn't handle 0 width/height rect consistently
When binding a GDI device context to D2D we need to provide a rectangle where the surface will have effect. When we just need some font information we need to bind the DC too, but we aren't really interested what the rectangle is, so we just provided a 0,0,0,0 rectangle in that case. This sometimes fails with a "out of memory" result and is dependent on the renderer. Instead of 0,0,0,0 rectangle we rather define a 0,0,1,1 rectangle which should never fail. This is not problematic as for actual rendering we later rebind with an actual rectangle. Change-Id: I79c7f0cf4d69f213370ed26a811a908ed16070ff Reviewed-on: https://gerrit.libreoffice.org/39902 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/inc/win/winlayout.hxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/vcl/inc/win/winlayout.hxx b/vcl/inc/win/winlayout.hxx
index 9d2a40eba5be..128ff1f96a47 100644
--- a/vcl/inc/win/winlayout.hxx
+++ b/vcl/inc/win/winlayout.hxx
@@ -225,7 +225,10 @@ public:
SalGraphics &rGraphics,
HDC hDC) override;
- bool BindDC(HDC hDC, tools::Rectangle const & rRect = tools::Rectangle(0, 0, 0, 0)) {
+ bool BindDC(HDC hDC, tools::Rectangle const & rRect = tools::Rectangle(0, 0, 1, 1))
+ {
+ if (rRect.GetWidth() == 0 || rRect.GetHeight() == 0)
+ return false;
RECT const rc = { rRect.Left(), rRect.Top(), rRect.Right(), rRect.Bottom() };
return SUCCEEDED(mpRT->BindDC(hDC, &rc));
}