summaryrefslogtreecommitdiff
path: root/src/gui/widgets/scrollarea.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-11-09 17:59:14 +0300
committerAndrei Karas <akaras@inbox.ru>2013-11-09 17:59:14 +0300
commitdb1e60556c72b1b87ff2a384c556ccca724c46d6 (patch)
tree22a5f4e9c4f436ef8e746e0a2d688de80c1597a6 /src/gui/widgets/scrollarea.cpp
parentc2bb49be52a92deccec7428b6859242688fc8987 (diff)
parent1716861f0ee2f7a3714c5b44bb0f017c3d8d3b2c (diff)
downloadplus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.gz
plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.bz2
plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.tar.xz
plus-db1e60556c72b1b87ff2a384c556ccca724c46d6.zip
Merge branch 'master' into stable
Diffstat (limited to 'src/gui/widgets/scrollarea.cpp')
-rw-r--r--src/gui/widgets/scrollarea.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp
index b537dd2ed..e97dad715 100644
--- a/src/gui/widgets/scrollarea.cpp
+++ b/src/gui/widgets/scrollarea.cpp
@@ -257,7 +257,7 @@ void ScrollArea::draw(gcn::Graphics *graphics)
BLOCK_START("ScrollArea::draw")
if (mVBarVisible || mHBarVisible)
{
- if (openGLMode != RENDER_SAFE_OPENGL)
+ if (isBatchDrawRenders(openGLMode))
{
if (!mOpaque)
updateCalcFlag(graphics);
@@ -315,7 +315,19 @@ void ScrollArea::draw(gcn::Graphics *graphics)
}
updateAlpha();
- drawChildren(graphics);
+
+ if (mRedraw)
+ {
+ Graphics *g = static_cast<Graphics *const>(graphics);
+ const bool redraw = g->getRedraw();
+ g->setRedraw(true);
+ drawChildren(graphics);
+ g->setRedraw(redraw);
+ }
+ else
+ {
+ drawChildren(graphics);
+ }
mRedraw = false;
BLOCK_END("ScrollArea::draw")
}
@@ -358,7 +370,7 @@ void ScrollArea::drawFrame(gcn::Graphics *graphics)
updateCalcFlag(graphics);
- if (openGLMode != RENDER_SAFE_OPENGL)
+ if (isBatchDrawRenders(openGLMode))
{
if (mRedraw)
{
@@ -787,6 +799,7 @@ void ScrollArea::mouseReleased(gcn::MouseEvent& event)
}
}
gcn::ScrollArea::mouseReleased(event);
+ mRedraw = true;
}
void ScrollArea::mouseDragged(gcn::MouseEvent &event)
@@ -830,6 +843,7 @@ void ScrollArea::mouseDragged(gcn::MouseEvent &event)
}
event.consume();
+ mRedraw = true;
}
gcn::Rectangle ScrollArea::getVerticalBarDimension() const