summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2013-10-18 19:53:00 +0300
committerAndrei Karas <akaras@inbox.ru>2013-10-19 15:12:21 +0300
commit8e4604158dfa710aa505fb97f8a6ac9a16e37997 (patch)
treedd2f78cb5a4086162aae385c29bd33b5a0a0ae1b
parent639084d63d6b135b880c71e50b9a66fbe8fc31d7 (diff)
downloadmanaverse-8e4604158dfa710aa505fb97f8a6ac9a16e37997.tar.gz
manaverse-8e4604158dfa710aa505fb97f8a6ac9a16e37997.tar.bz2
manaverse-8e4604158dfa710aa505fb97f8a6ac9a16e37997.tar.xz
manaverse-8e4604158dfa710aa505fb97f8a6ac9a16e37997.zip
remove virtual method calls from popuplist constructor and destructor.
-rw-r--r--src/gui/widgets/dropdown.cpp1
-rw-r--r--src/gui/widgets/popuplist.cpp8
-rw-r--r--src/gui/widgets/popuplist.h2
3 files changed, 9 insertions, 2 deletions
diff --git a/src/gui/widgets/dropdown.cpp b/src/gui/widgets/dropdown.cpp
index 99438a2ce..7c41bbacc 100644
--- a/src/gui/widgets/dropdown.cpp
+++ b/src/gui/widgets/dropdown.cpp
@@ -76,6 +76,7 @@ DropDown::DropDown(const Widget2 *const widget,
mPushed(false),
mIsDragged(false)
{
+ mPopup->postInit();
mFrameSize = 2;
mForegroundColor2 = getThemeColor(Theme::DROPDOWN_OUTLINE);
diff --git a/src/gui/widgets/popuplist.cpp b/src/gui/widgets/popuplist.cpp
index 346539348..5fd1e90cd 100644
--- a/src/gui/widgets/popuplist.cpp
+++ b/src/gui/widgets/popuplist.cpp
@@ -48,6 +48,10 @@ PopupList::PopupList(DropDown *const widget,
mListBox->setDistributeMousePressed(true);
mScrollArea->setPosition(mPadding, mPadding);
+}
+
+void PopupList::postInit()
+{
add(mScrollArea);
if (gui)
@@ -60,8 +64,8 @@ PopupList::PopupList(DropDown *const widget,
PopupList::~PopupList()
{
- if (getParent())
- getParent()->removeFocusListener(this);
+ if (mParent)
+ mParent->removeFocusListener(this);
if (gui)
gui->removeGlobalFocusListener(this);
removeKeyListener(mDropDown);
diff --git a/src/gui/widgets/popuplist.h b/src/gui/widgets/popuplist.h
index b4575d51e..9d48ba0e7 100644
--- a/src/gui/widgets/popuplist.h
+++ b/src/gui/widgets/popuplist.h
@@ -44,6 +44,8 @@ class PopupList final : public Popup,
A_DELETE_COPY(PopupList)
+ void postInit() override;
+
void show(int x, int y);
void widgetResized(const gcn::Event &event) override;