summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2019-06-12 15:54:20 +0200
committerMiklos Vajna <vmiklos@collabora.com>2019-06-13 10:26:02 +0200
commit60f2fa03cfd2fee08430a4d502c9d47ed2a89db7 (patch)
tree99ddd6cf288457bd482b73bb8626cdcf4ab0cf41
parent7adfdb8132b0a944cb67d4e465cb61e487b59a67 (diff)
tdf#95173 vcl: fix partially drawn progressbar widget
Commit e6c2951f1957224aa0e7dc97b33b0450c41f92f7 (delegate RenderContext, invalidate - prgsbar, scrbar, 2015-04-29) switched ProgressBar::SetValue() from direct partial paint to invalidate + full paint. This means that ProgressBar::ImplDrawProgress() has to paint the whole progressbar, not only just the delta between the old and the new value. Remove the not needed mnPreviousPercent member and just paint from 0 to the percent value, like we did before the above commit, that does the needed full paint. (cherry picked from commit 6fd3eb533998c8f63430a43767b2a52aa5e71e3f) Change-Id: Id45ee918248b5fa6647bd766a49b707da1e5846f Reviewed-on: https://gerrit.libreoffice.org/73933 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--include/vcl/prgsbar.hxx3
-rw-r--r--vcl/source/control/prgsbar.cxx9
2 files changed, 4 insertions, 8 deletions
diff --git a/include/vcl/prgsbar.hxx b/include/vcl/prgsbar.hxx
index f28c82e78e75..773379e4822c 100644
--- a/include/vcl/prgsbar.hxx
+++ b/include/vcl/prgsbar.hxx
@@ -54,13 +54,12 @@ private:
long mnPrgsHeight;
sal_uInt16 mnPercent;
sal_uInt16 mnPercentCount;
- sal_uInt16 mnPreviousPercent;
bool mbCalcNew;
using Window::ImplInit;
SAL_DLLPRIVATE void ImplInit();
SAL_DLLPRIVATE void ImplInitSettings( bool bFont, bool bForeground, bool bBackground );
- SAL_DLLPRIVATE void ImplDrawProgress(vcl::RenderContext& rRenderContext, sal_uInt16 nOldPerc, sal_uInt16 nNewPerc);
+ SAL_DLLPRIVATE void ImplDrawProgress(vcl::RenderContext& rRenderContext, sal_uInt16 nNewPerc);
public:
ProgressBar( vcl::Window* pParent, WinBits nWinBits );
diff --git a/vcl/source/control/prgsbar.cxx b/vcl/source/control/prgsbar.cxx
index 61ba2b67a1fe..376ed91cfcdd 100644
--- a/vcl/source/control/prgsbar.cxx
+++ b/vcl/source/control/prgsbar.cxx
@@ -29,7 +29,6 @@
void ProgressBar::ImplInit()
{
mnPercent = 0;
- mnPreviousPercent = 0;
mbCalcNew = true;
ImplInitSettings( true, true, true );
@@ -112,7 +111,7 @@ void ProgressBar::ImplInitSettings( bool bFont,
}
}
-void ProgressBar::ImplDrawProgress(vcl::RenderContext& rRenderContext, sal_uInt16 nOldPerc, sal_uInt16 nNewPerc)
+void ProgressBar::ImplDrawProgress(vcl::RenderContext& rRenderContext, sal_uInt16 nNewPerc)
{
if (mbCalcNew)
{
@@ -141,13 +140,13 @@ void ProgressBar::ImplDrawProgress(vcl::RenderContext& rRenderContext, sal_uInt1
}
::DrawProgress(this, rRenderContext, maPos, PROGRESSBAR_OFFSET, mnPrgsWidth, mnPrgsHeight,
- nOldPerc * 100, nNewPerc * 100, mnPercentCount,
+ /*nPercent1=*/0, nNewPerc * 100, mnPercentCount,
tools::Rectangle(Point(), GetSizePixel()));
}
void ProgressBar::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& /*rRect*/)
{
- ImplDrawProgress(rRenderContext, mnPreviousPercent, mnPercent);
+ ImplDrawProgress(rRenderContext, mnPercent);
}
void ProgressBar::Resize()
@@ -165,7 +164,6 @@ void ProgressBar::SetValue( sal_uInt16 nNewPercent )
{
mbCalcNew = true;
mnPercent = nNewPercent;
- mnPreviousPercent = 0;
if ( IsReallyVisible() )
{
Invalidate();
@@ -174,7 +172,6 @@ void ProgressBar::SetValue( sal_uInt16 nNewPercent )
}
else if ( mnPercent != nNewPercent )
{
- mnPreviousPercent = mnPercent;
mnPercent = nNewPercent;
Invalidate();
}