summaryrefslogtreecommitdiff
path: root/src/gui/windowmenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windowmenu.cpp')
-rw-r--r--src/gui/windowmenu.cpp30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/gui/windowmenu.cpp b/src/gui/windowmenu.cpp
index 795f2ad5a..910bba705 100644
--- a/src/gui/windowmenu.cpp
+++ b/src/gui/windowmenu.cpp
@@ -34,6 +34,7 @@
#include "gui/widgets/button.h"
+#include "utils/delete2.h"
#include "utils/dtor.h"
#include "utils/gettext.h"
@@ -46,8 +47,7 @@ WindowMenu::WindowMenu(const Widget2 *const widget) :
ActionListener(),
SelectionListener(),
MouseListener(),
- mSkin(Theme::instance() ? Theme::instance()->load("windowmenu.xml", "")
- : nullptr),
+ mSkin(theme ? theme->load("windowmenu.xml", "") : nullptr),
mPadding(mSkin ? mSkin->getPadding() : 1),
mSpacing(mSkin ? mSkin->getOption("spacing", 3) : 3),
mTextPopup(new TextPopup),
@@ -172,8 +172,7 @@ WindowMenu::~WindowMenu()
config.removeListener("autohideButtons", this);
CHECKLISTENERS
- delete mTextPopup;
- mTextPopup = nullptr;
+ delete2(mTextPopup);
for (std::map <std::string, ButtonInfo*>::iterator
it = mButtonNames.begin(),
it_end = mButtonNames.end(); it != it_end; ++it)
@@ -181,22 +180,18 @@ WindowMenu::~WindowMenu()
delete (*it).second;
}
mButtonNames.clear();
- for (std::vector <Button*>::iterator it = mButtons.begin(),
- it_end = mButtons.end(); it != it_end; ++it)
+ FOR_EACH (std::vector <Button*>::iterator, it, mButtons)
{
Button *const btn = dynamic_cast<Button*>(*it);
if (!btn)
continue;
if (!btn->isVisible())
- {
delete btn;
- }
}
delete_all(mButtonTexts);
mButtonTexts.clear();
if (mSkin)
{
- Theme *const theme = Theme::instance();
if (theme)
theme->unload(mSkin);
mSkin = nullptr;
@@ -206,7 +201,6 @@ WindowMenu::~WindowMenu()
void WindowMenu::action(const ActionEvent &event)
{
const std::string &eventId = event.getId();
-
const std::map <std::string, ButtonInfo*>::iterator
it = mButtonNames.find(eventId);
if (it == mButtonNames.end())
@@ -221,7 +215,9 @@ void WindowMenu::action(const ActionEvent &event)
void WindowMenu::addButton(const char *const text,
const std::string &description,
- int &restrict x, int &restrict h, const int key,
+ int &restrict x,
+ int &restrict h,
+ const int key,
const bool visible)
{
Button *const btn = new Button(this, gettext(text), text, this);
@@ -243,8 +239,12 @@ void WindowMenu::mousePressed(MouseEvent &event)
if (!viewport)
return;
- if (!mSmallWindow && event.getButton() == MouseEvent::RIGHT)
+ if (event.getButton() == MouseEvent::RIGHT)
{
+ if (mSmallWindow)
+ return;
+
+ event.consume();
Button *const btn = dynamic_cast<Button*>(event.getSource());
if (!btn)
return;
@@ -295,7 +295,7 @@ void WindowMenu::mouseMoved(MouseEvent &event)
}
}
-void WindowMenu::mouseExited(MouseEvent& mouseEvent A_UNUSED)
+void WindowMenu::mouseExited(MouseEvent& event A_UNUSED)
{
mHaveMouse = false;
if (!mTextPopup)
@@ -393,9 +393,7 @@ void WindowMenu::loadButtons()
void WindowMenu::saveButtons() const
{
int i = 0;
- for (std::vector <Button*>::const_iterator it = mButtons.begin(),
- it_end = mButtons.end();
- it != it_end; ++it)
+ FOR_EACH (std::vector <Button*>::const_iterator, it, mButtons)
{
const Button *const btn = dynamic_cast<const Button *const>(*it);
if (btn && !btn->isVisible())