diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2019-12-20 18:05:35 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2019-12-20 19:31:18 +0100 |
commit | 4b191691fb33db96d90a27ae2a09f290d45029bc (patch) | |
tree | 1d1b4a36e5968d044eef5297b258d21429a31fe1 /vcl/qa | |
parent | 813118bfbb453f812be9e1a30f84908b4e0bfb51 (diff) |
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 <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'vcl/qa')
-rw-r--r-- | vcl/qa/cppunit/outdev.cxx | 15 |
1 files changed, 15 insertions, 0 deletions
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(); |