diff options
author | Andrei Karas <akaras@inbox.ru> | 2013-11-09 17:59:14 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2013-11-09 17:59:14 +0300 |
commit | db1e60556c72b1b87ff2a384c556ccca724c46d6 (patch) | |
tree | 22a5f4e9c4f436ef8e746e0a2d688de80c1597a6 /src/gui/widgets/scrollarea.cpp | |
parent | c2bb49be52a92deccec7428b6859242688fc8987 (diff) | |
parent | 1716861f0ee2f7a3714c5b44bb0f017c3d8d3b2c (diff) | |
download | plus-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.cpp | 20 |
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 |