vcl/CppunitTest_vcl_outdev.mk | 1 + vcl/qa/cppunit/outdev.cxx | 15 +++++++++++++++ vcl/source/window/bufferdevice.cxx | 1 + vcl/source/window/bufferdevice.hxx | 2 +- 4 files changed, 18 insertions(+), 1 deletion(-)
New commits: commit 053da119bb5817651f52e83cd7ece45cfb59d196 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Fri Dec 20 18:05:35 2019 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sat Dec 21 22:13:54 2019 +0100 tdf#127022 vcl: fix Windows RTL menu bar Regression from commit e8d5b8beb5958147235ff955ed38c47b51d860ff (tdf#113714 vcl menu bar window: avoid flicker, 2019-05-20), the problem was that while the original render context has RTL set up correctly, the intermediate virtual device had it disabled all the time. Change-Id: Ic063c4a6c0537891c0bfceb8927edb97cf1c6e86 Reviewed-on: https://gerrit.libreoffice.org/85624 Reviewed-by: Miklos Vajna <vmik...@collabora.com> Tested-by: Jenkins Reviewed-on: https://gerrit.libreoffice.org/85636 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/CppunitTest_vcl_outdev.mk b/vcl/CppunitTest_vcl_outdev.mk index f15d2e26d17d..65fd6b5fa17e 100644 --- a/vcl/CppunitTest_vcl_outdev.mk +++ b/vcl/CppunitTest_vcl_outdev.mk @@ -12,6 +12,7 @@ $(eval $(call gb_CppunitTest_CppunitTest,vcl_outdev)) $(eval $(call gb_CppunitTest_set_include,vcl_outdev,\ $$(INCLUDE) \ -I$(SRCDIR)/vcl/inc \ + -I$(SRCDIR)/vcl/source/window \ )) $(eval $(call gb_CppunitTest_add_exception_objects,vcl_outdev, \ diff --git a/vcl/qa/cppunit/outdev.cxx b/vcl/qa/cppunit/outdev.cxx index 8b2dd7c3a841..2f42412e75aa 100644 --- a/vcl/qa/cppunit/outdev.cxx +++ b/vcl/qa/cppunit/outdev.cxx @@ -16,6 +16,7 @@ #include <vcl/gdimtf.hxx> #include <vcl/metaact.hxx> #include <bitmapwriteaccess.hxx> +#include <bufferdevice.hxx> #include <basegfx/matrix/b2dhommatrix.hxx> @@ -32,6 +33,7 @@ public: void testGetReadableFontColorWindow(); void testDrawTransformedBitmapEx(); void testDrawTransformedBitmapExFlip(); + void testRTL(); CPPUNIT_TEST_SUITE(VclOutdevTest); CPPUNIT_TEST(testVirtualDevice); @@ -42,6 +44,7 @@ public: CPPUNIT_TEST(testGetReadableFontColorWindow); CPPUNIT_TEST(testDrawTransformedBitmapEx); CPPUNIT_TEST(testDrawTransformedBitmapExFlip); + CPPUNIT_TEST(testRTL); CPPUNIT_TEST_SUITE_END(); }; @@ -254,6 +257,18 @@ void VclOutdevTest::testDrawTransformedBitmapExFlip() CPPUNIT_ASSERT_EQUAL_MESSAGE(ss.str(), COL_BLACK, Color(aColor)); } +void VclOutdevTest::testRTL() +{ + ScopedVclPtrInstance<vcl::Window> pWindow(nullptr, WB_APP | WB_STDWORK); + pWindow->EnableRTL(); + vcl::RenderContext& rRenderContext = *pWindow; + vcl::BufferDevice pBuffer(pWindow, rRenderContext); + + // Without the accompanying fix in place, this test would have failed, because the RTL status + // from pWindow was not propagated to pBuffer. + CPPUNIT_ASSERT(pBuffer->IsRTLEnabled()); +} + CPPUNIT_TEST_SUITE_REGISTRATION(VclOutdevTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/vcl/source/window/bufferdevice.cxx b/vcl/source/window/bufferdevice.cxx index d1480588d48f..0092d1ab97e4 100644 --- a/vcl/source/window/bufferdevice.cxx +++ b/vcl/source/window/bufferdevice.cxx @@ -20,6 +20,7 @@ BufferDevice::BufferDevice(const VclPtr<vcl::Window>& pWindow, vcl::RenderContex m_pBuffer->SetTextColor(rRenderContext.GetTextColor()); m_pBuffer->DrawOutDev(Point(0, 0), pWindow->GetOutputSizePixel(), Point(0, 0), pWindow->GetOutputSizePixel(), rRenderContext); + m_pBuffer->EnableRTL(rRenderContext.IsRTLEnabled()); } BufferDevice::~BufferDevice() diff --git a/vcl/source/window/bufferdevice.hxx b/vcl/source/window/bufferdevice.hxx index 26bf28e615fa..5f2471cd26d9 100644 --- a/vcl/source/window/bufferdevice.hxx +++ b/vcl/source/window/bufferdevice.hxx @@ -16,7 +16,7 @@ namespace vcl { /// Buffers drawing on a vcl::RenderContext using a VirtualDevice. -class BufferDevice +class VCL_DLLPUBLIC BufferDevice { ScopedVclPtr<VirtualDevice> m_pBuffer; VclPtr<vcl::Window> m_pWindow; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits