Regression from c04169c586
(tdf#125415 vcl
menu floating window: avoid flicker, 2019-05-21) the problem was that
the clip region was set on the buffer, not on the render context. This
means the original clip was used to determine what gets copied from the
buffer to the screen, so the scroller arrows were not rendered.
Change-Id: Id173e6333721891798da58baf2092f4cd21a62ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93642
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#include "bufferdevice.hxx"
|
|
|
|
namespace vcl
|
|
{
|
|
BufferDevice::BufferDevice(const VclPtr<vcl::Window>& pWindow, vcl::RenderContext& rRenderContext)
|
|
: m_pBuffer(VclPtr<VirtualDevice>::Create(rRenderContext))
|
|
, m_pWindow(pWindow)
|
|
, m_rRenderContext(rRenderContext)
|
|
{
|
|
m_pBuffer->SetOutputSizePixel(pWindow->GetOutputSizePixel(), false);
|
|
m_pBuffer->SetTextColor(rRenderContext.GetTextColor());
|
|
m_pBuffer->DrawOutDev(Point(0, 0), pWindow->GetOutputSizePixel(), Point(0, 0),
|
|
pWindow->GetOutputSizePixel(), rRenderContext);
|
|
m_pBuffer->EnableRTL(rRenderContext.IsRTLEnabled());
|
|
}
|
|
|
|
void BufferDevice::Dispose()
|
|
{
|
|
if (m_bDisposed)
|
|
{
|
|
return;
|
|
}
|
|
|
|
m_rRenderContext.DrawOutDev(Point(0, 0), m_pWindow->GetOutputSizePixel(), Point(0, 0),
|
|
m_pWindow->GetOutputSizePixel(), *m_pBuffer);
|
|
m_bDisposed = true;
|
|
}
|
|
|
|
BufferDevice::~BufferDevice() { Dispose(); }
|
|
|
|
vcl::RenderContext* BufferDevice::operator->() { return m_pBuffer.get(); }
|
|
|
|
vcl::RenderContext& BufferDevice::operator*() { return *m_pBuffer; }
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|