summaryrefslogtreecommitdiff
path: root/vcl/qa
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2019-12-20 18:05:35 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-12-21 22:13:54 +0100
commit053da119bb5817651f52e83cd7ece45cfb59d196 (patch)
treef55db308d9d2f538fad08987867f5e5ccfd9ecb8 /vcl/qa
parent030b7c01dcb2262e5dc73de81dd33e2e24529da2 (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 Reviewed-on: https://gerrit.libreoffice.org/85636 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/qa')
-rw-r--r--vcl/qa/cppunit/outdev.cxx15
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();