diff options
author | markt <markt> | 2007-09-08 18:38:30 (GMT) |
---|---|---|
committer | markt <markt> | 2007-09-08 18:38:30 (GMT) |
commit | 16218ae90b2499773d0c49a8c2900f269f5a2974 (patch) | |
tree | b0bff08ecdd983808eeec136700bd27ea16ae03a /src/FbTk | |
parent | adddf014bd80d5ea7595fc1e8df233a857b8d90f (diff) | |
download | fluxbox_lack-16218ae90b2499773d0c49a8c2900f269f5a2974.zip fluxbox_lack-16218ae90b2499773d0c49a8c2900f269f5a2974.tar.bz2 |
fix crash when changing toolbar visibility with empty toolbar.tools
Diffstat (limited to 'src/FbTk')
-rw-r--r-- | src/FbTk/Menu.cc | 2 | ||||
-rw-r--r-- | src/FbTk/MenuItem.cc | 7 | ||||
-rw-r--r-- | src/FbTk/Subject.cc | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index ee17204..b0fcb4b 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc | |||
@@ -506,7 +506,7 @@ void Menu::updateMenu(int active_index) { | |||
506 | 506 | ||
507 | void Menu::show() { | 507 | void Menu::show() { |
508 | 508 | ||
509 | if (isVisible() || !menuitems.size()) | 509 | if (isVisible() || menuitems.empty()) |
510 | return; | 510 | return; |
511 | 511 | ||
512 | m_visible = true; | 512 | m_visible = true; |
diff --git a/src/FbTk/MenuItem.cc b/src/FbTk/MenuItem.cc index 82dd155..bc80ca0 100644 --- a/src/FbTk/MenuItem.cc +++ b/src/FbTk/MenuItem.cc | |||
@@ -34,8 +34,11 @@ | |||
34 | namespace FbTk { | 34 | namespace FbTk { |
35 | 35 | ||
36 | void MenuItem::click(int button, int time) { | 36 | void MenuItem::click(int button, int time) { |
37 | if (m_command.get() != 0) | 37 | if (m_command.get() != 0) { |
38 | m_command->execute(); | 38 | // we need a local variable, since the command may destroy this object |
39 | RefCount<Command> tmp(m_command); | ||
40 | tmp->execute(); | ||
41 | } | ||
39 | } | 42 | } |
40 | 43 | ||
41 | void MenuItem::drawLine(FbDrawable &draw, const MenuTheme &theme, size_t size, | 44 | void MenuItem::drawLine(FbDrawable &draw, const MenuTheme &theme, size_t size, |
diff --git a/src/FbTk/Subject.cc b/src/FbTk/Subject.cc index 2b30fd8..08a211c 100644 --- a/src/FbTk/Subject.cc +++ b/src/FbTk/Subject.cc | |||
@@ -64,7 +64,7 @@ void Subject::notify() { | |||
64 | m_notify_mode = false; | 64 | m_notify_mode = false; |
65 | 65 | ||
66 | // remove dead observers | 66 | // remove dead observers |
67 | if (m_dead_observers.size()) { | 67 | if (!m_dead_observers.empty()) { |
68 | std::for_each(m_dead_observers.begin(), | 68 | std::for_each(m_dead_observers.begin(), |
69 | m_dead_observers.end(), | 69 | m_dead_observers.end(), |
70 | std::bind1st(std::mem_fun(&Subject::detach), this)); | 70 | std::bind1st(std::mem_fun(&Subject::detach), this)); |