summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-03-26 16:01:14 +0200
committerAndrei Karas <akaras@inbox.ru>2011-03-26 16:01:14 +0200
commit02d6bcd53e06e1caeb335bd9b12bb16cc982d656 (patch)
tree37ac4f0f57d6d293bad24332d14e31b1cbb06f1d
parent0a62226b1cc9c1b01ddab4feb9095ed7a5ba3e48 (diff)
downloadplus-02d6bcd53e06e1caeb335bd9b12bb16cc982d656.tar.gz
plus-02d6bcd53e06e1caeb335bd9b12bb16cc982d656.tar.bz2
plus-02d6bcd53e06e1caeb335bd9b12bb16cc982d656.tar.xz
plus-02d6bcd53e06e1caeb335bd9b12bb16cc982d656.zip
Fix scrollbar regression.
Yes, code look like hack, but it working.
-rw-r--r--src/gui/widgets/scrollarea.cpp16
-rw-r--r--src/gui/widgets/scrollarea.h2
2 files changed, 15 insertions, 3 deletions
diff --git a/src/gui/widgets/scrollarea.cpp b/src/gui/widgets/scrollarea.cpp
index 2cc745ccd..a78048314 100644
--- a/src/gui/widgets/scrollarea.cpp
+++ b/src/gui/widgets/scrollarea.cpp
@@ -50,7 +50,9 @@ ScrollArea::ScrollArea():
mVertexes(new GraphicsVertexes()),
mRedraw(true),
mXOffset(0),
- mYOffset(0)
+ mYOffset(0),
+ mDrawWidth(0),
+ mDrawHeight(0)
{
addWidgetListener(this);
init();
@@ -65,9 +67,11 @@ ScrollArea::ScrollArea(gcn::Widget *widget):
mVertexes(new GraphicsVertexes()),
mRedraw(true),
mXOffset(0),
- mYOffset(0)
+ mYOffset(0),
+ mDrawWidth(0),
+ mDrawHeight(0)
{
- addWidgetListener(this);
+// addWidgetListener(this);
init();
}
@@ -339,6 +343,12 @@ void ScrollArea::drawFrame(gcn::Graphics *graphics)
mXOffset = rect.xOffset;
mYOffset = rect.yOffset;
}
+ else if (rect.width != mDrawWidth || rect.height != mDrawHeight)
+ {
+ recalc = true;
+ mDrawWidth = rect.width;
+ mDrawHeight = rect.height;
+ }
}
if (recalc)
diff --git a/src/gui/widgets/scrollarea.h b/src/gui/widgets/scrollarea.h
index e613170fa..0e5a8f850 100644
--- a/src/gui/widgets/scrollarea.h
+++ b/src/gui/widgets/scrollarea.h
@@ -154,6 +154,8 @@ class ScrollArea : public gcn::ScrollArea, public gcn::WidgetListener
bool mRedraw;
int mXOffset;
int mYOffset;
+ int mDrawWidth;
+ int mDrawHeight;
};
#endif