fix crashes on restart
Mark Tiefenbruck mark@fluxbox.org
2 files changed,
9 insertions(+),
9 deletions(-)
M
src/Toolbar.cc
→
src/Toolbar.cc
@@ -287,7 +287,8 @@
} Toolbar::~Toolbar() { - Fluxbox::instance()->keys()->unregisterWindow(window().window()); + if (Fluxbox::instance()->keys()) + Fluxbox::instance()->keys()->unregisterWindow(window().window()); FbTk::EventManager::instance()->remove(window()); // remove menu items before we delete tools so we dont end up // with dangling pointers to old submenu items (internal menus)
M
src/fluxbox.cc
→
src/fluxbox.cc
@@ -420,14 +420,6 @@
Fluxbox::~Fluxbox() { - // destroy atomhandlers - for (AtomHandlerContainerIt it= m_atomhandler.begin(); - it != m_atomhandler.end(); - it++) { - delete (*it).first; - } - m_atomhandler.clear(); - // this needs to be destroyed before screens; otherwise, menus stored in // key commands cause a segfault when the XLayerItem is destroyed m_key.reset(0);@@ -438,6 +430,13 @@ delete m_screen_list.back();
m_screen_list.pop_back(); } + // destroy atomhandlers + for (AtomHandlerContainerIt it= m_atomhandler.begin(); + it != m_atomhandler.end(); + it++) { + delete (*it).first; + } + m_atomhandler.clear(); clearMenuFilenames(); }