From ef1767851f3b5509066b0106324c6619102de046 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 23 May 2015 23:55:26 +0300 Subject: If window with button is hidden then release text image and vertexes. This will reduce memory usage and not affect performance. --- src/gui/widgets/button.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/gui/widgets/button.cpp') diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp index 446f4756f..e6f5b501d 100644 --- a/src/gui/widgets/button.cpp +++ b/src/gui/widgets/button.cpp @@ -367,6 +367,9 @@ void Button::init() Button::~Button() { + if (mWindow) + mWindow->removeWidgetListener(this); + if (gui) gui->removeDragged(this); @@ -679,6 +682,15 @@ void Button::widgetMoved(const Event &event A_UNUSED) mRedraw = true; } +void Button::widgetHidden(const Event &event A_UNUSED) +{ + if (isBatchDrawRenders(openGLMode)) + mVertexes2->clear(); + mTextChunk.deleteImage(); + mRedraw = true; + mTextChanged = true; +} + void Button::adjustSize() { const Font *const font = getFont(); @@ -774,3 +786,10 @@ void Button::mouseDragged(MouseEvent& event) { event.consume(); } + +void Button::setParent(Widget *widget) +{ + if (mWindow) + mWindow->addWidgetListener(this); + Widget::setParent(widget); +} -- cgit v1.2.3-60-g2f50