summaryrefslogtreecommitdiff
path: root/src/gui/widgets/button.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-06-04 22:51:17 +0300
committerAndrei Karas <akaras@inbox.ru>2015-06-04 22:51:17 +0300
commitbc4957b24e6939f4e681e9412f9bbdd483a6bc35 (patch)
tree26f151a039a24f294774d32a4e1f89ceaa6ae2af /src/gui/widgets/button.cpp
parentfe84fc25906d6cc6801f9e15cf2652e1d16419ca (diff)
downloadmanaplus-bc4957b24e6939f4e681e9412f9bbdd483a6bc35.tar.gz
manaplus-bc4957b24e6939f4e681e9412f9bbdd483a6bc35.tar.bz2
manaplus-bc4957b24e6939f4e681e9412f9bbdd483a6bc35.tar.xz
manaplus-bc4957b24e6939f4e681e9412f9bbdd483a6bc35.zip
Fix removing listeners from window if used guitable as container.
This fixing crash with settings window after reconnect to server.
Diffstat (limited to 'src/gui/widgets/button.cpp')
-rw-r--r--src/gui/widgets/button.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/widgets/button.cpp b/src/gui/widgets/button.cpp
index 73a289630..842286ecb 100644
--- a/src/gui/widgets/button.cpp
+++ b/src/gui/widgets/button.cpp
@@ -915,3 +915,16 @@ void Button::setParent(Widget *widget)
mWindow->addWidgetListener(this);
Widget::setParent(widget);
}
+
+void Button::setWindow(Widget *const widget)
+{
+ if (!widget && mWindow)
+ {
+ mWindow->removeWidgetListener(this);
+ mWindow = nullptr;
+ }
+ else
+ {
+ Widget2::setWindow(widget);
+ }
+}