diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-04 22:51:17 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-04 22:51:17 +0300 |
commit | bc4957b24e6939f4e681e9412f9bbdd483a6bc35 (patch) | |
tree | 26f151a039a24f294774d32a4e1f89ceaa6ae2af /src/gui/widgets/button.cpp | |
parent | fe84fc25906d6cc6801f9e15cf2652e1d16419ca (diff) | |
download | manaplus-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.cpp | 13 |
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); + } +} |