aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkt <markt>2007-09-08 18:38:30 (GMT)
committermarkt <markt>2007-09-08 18:38:30 (GMT)
commit16218ae90b2499773d0c49a8c2900f269f5a2974 (patch)
treeb0bff08ecdd983808eeec136700bd27ea16ae03a
parentadddf014bd80d5ea7595fc1e8df233a857b8d90f (diff)
downloadfluxbox-16218ae90b2499773d0c49a8c2900f269f5a2974.zip
fluxbox-16218ae90b2499773d0c49a8c2900f269f5a2974.tar.bz2
fix crash when changing toolbar visibility with empty toolbar.tools
-rw-r--r--ChangeLog3
-rw-r--r--src/FbTk/Menu.cc2
-rw-r--r--src/FbTk/MenuItem.cc7
-rw-r--r--src/FbTk/Subject.cc2
-rw-r--r--src/MenuCreator.cc2
-rw-r--r--src/Remember.cc2
-rw-r--r--src/Toolbar.cc2
7 files changed, 13 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index ba96feb..d1818f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
1 (Format: Year/Month/Day) 1 (Format: Year/Month/Day)
2Changes for 1.0.0: 2Changes for 1.0.0:
3*07/09/07:
4 * Fix crash when changing toolbar visibility, #1786765 (Mark)
5 FbTk/MenuItem.cc
3*07/08/27: 6*07/08/27:
4 * Fix hardcoded Mod1, use ModKey() now (Mathias) 7 * Fix hardcoded Mod1, use ModKey() now (Mathias)
5 Window.cc 8 Window.cc
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
507void Menu::show() { 507void 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 @@
34namespace FbTk { 34namespace FbTk {
35 35
36void MenuItem::click(int button, int time) { 36void 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
41void MenuItem::drawLine(FbDrawable &draw, const MenuTheme &theme, size_t size, 44void 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));
diff --git a/src/MenuCreator.cc b/src/MenuCreator.cc
index 8507388..fefb3dc 100644
--- a/src/MenuCreator.cc
+++ b/src/MenuCreator.cc
@@ -325,7 +325,7 @@ static void translateMenuItem(Parser &parse, ParseItem &pitem, FbTk::StringConve
325 if (submenu == 0) 325 if (submenu == 0)
326 return; 326 return;
327 327
328 if (str_cmd.size()) 328 if (!str_cmd.empty())
329 submenu->setLabel(str_cmd); 329 submenu->setLabel(str_cmd);
330 else 330 else
331 submenu->setLabel(str_label); 331 submenu->setLabel(str_label);
diff --git a/src/Remember.cc b/src/Remember.cc
index 2de6d86..f5a5ac8 100644
--- a/src/Remember.cc
+++ b/src/Remember.cc
@@ -387,7 +387,7 @@ int Remember::parseApp(ifstream &file, Application &app, string *first_line) {
387 387
388 bool had_error = false; 388 bool had_error = false;
389 389
390 if (!str_key.size()) 390 if (str_key.empty())
391 continue; //read next line 391 continue; //read next line
392 if (strcasecmp(str_key.c_str(), "Workspace") == 0) { 392 if (strcasecmp(str_key.c_str(), "Workspace") == 0) {
393 unsigned int w; 393 unsigned int w;
diff --git a/src/Toolbar.cc b/src/Toolbar.cc
index ad1a8e5..b5ad967 100644
--- a/src/Toolbar.cc
+++ b/src/Toolbar.cc
@@ -412,7 +412,7 @@ void Toolbar::reconfigure() {
412 412
413 m_tools = tools; // copy values 413 m_tools = tools; // copy values
414 414
415 if (m_tools.size()) { 415 if (!m_tools.empty()) {
416 // make lower case 416 // make lower case
417 transform(m_tools.begin(), m_tools.end(), 417 transform(m_tools.begin(), m_tools.end(),
418 m_tools.begin(), 418 m_tools.begin(),