Kaydet (Commit) 3a22d789 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Avoid re-drawing progress bar too frequently.

Change-Id: I01dcd6d421c1f648b4cd8413e3baf50fd26d4c8f
üst 5db19a41
...@@ -96,12 +96,14 @@ namespace { ...@@ -96,12 +96,14 @@ namespace {
void lclUpdateProgressBar( const ISegmentProgressBarRef& rxProgressBar, const CellRangeAddress& rUsedArea, sal_Int32 nRow ) void lclUpdateProgressBar( const ISegmentProgressBarRef& rxProgressBar, const CellRangeAddress& rUsedArea, sal_Int32 nRow )
{ {
if( rxProgressBar.get() && (rUsedArea.StartRow <= nRow) && (nRow <= rUsedArea.EndRow) ) if (!rxProgressBar || nRow < rUsedArea.StartRow || rUsedArea.EndRow < nRow)
{ return;
double fPosition = static_cast< double >( nRow - rUsedArea.StartRow + 1 ) / (rUsedArea.EndRow - rUsedArea.StartRow + 1);
if( rxProgressBar->getPosition() < fPosition ) double fCurPos = rxProgressBar->getPosition();
rxProgressBar->setPosition( fPosition ); double fNewPos = static_cast<double>(nRow - rUsedArea.StartRow + 1.0) / (rUsedArea.EndRow - rUsedArea.StartRow + 1.0);
} if (fCurPos < fNewPos && (fNewPos - fCurPos) > 0.3)
// Try not to re-draw progress bar too frequently.
rxProgressBar->setPosition(fNewPos);
} }
void lclUpdateProgressBar( const ISegmentProgressBarRef& rxProgressBar, double fPosition ) void lclUpdateProgressBar( const ISegmentProgressBarRef& rxProgressBar, double fPosition )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment