delete config menu first at shutdown
This commit is contained in:
parent
97e08c3853
commit
0b6c860fa0
1 changed files with 11 additions and 3 deletions
|
@ -504,7 +504,9 @@ BScreen::~BScreen() {
|
||||||
|
|
||||||
if (! managed)
|
if (! managed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
m_configmenu.reset(0);
|
||||||
|
|
||||||
m_toolbar.reset(0);
|
m_toolbar.reset(0);
|
||||||
|
|
||||||
FbTk::EventManager *evm = FbTk::EventManager::instance();
|
FbTk::EventManager *evm = FbTk::EventManager::instance();
|
||||||
|
@ -573,7 +575,12 @@ BScreen::~BScreen() {
|
||||||
|
|
||||||
// slit must be destroyed before headAreas (Struts)
|
// slit must be destroyed before headAreas (Struts)
|
||||||
m_slit.reset(0);
|
m_slit.reset(0);
|
||||||
|
|
||||||
|
|
||||||
|
delete m_rootmenu.release();
|
||||||
|
delete m_workspacemenu.release();
|
||||||
|
delete m_windowmenu.release();
|
||||||
|
|
||||||
// TODO fluxgen: check if this is the right place
|
// TODO fluxgen: check if this is the right place
|
||||||
for (size_t i = 0; i < m_head_areas.size(); i++)
|
for (size_t i = 0; i < m_head_areas.size(); i++)
|
||||||
delete m_head_areas[i];
|
delete m_head_areas[i];
|
||||||
|
@ -1469,7 +1476,8 @@ void BScreen::rereadWindowMenu() {
|
||||||
|
|
||||||
void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) {
|
void BScreen::addConfigMenu(const FbTk::FbString &label, FbTk::Menu &menu) {
|
||||||
m_configmenu_list.push_back(make_pair(label, &menu));
|
m_configmenu_list.push_back(make_pair(label, &menu));
|
||||||
setupConfigmenu(*m_configmenu.get());
|
if (m_configmenu.get())
|
||||||
|
setupConfigmenu(*m_configmenu.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void BScreen::removeConfigMenu(FbTk::Menu &menu) {
|
void BScreen::removeConfigMenu(FbTk::Menu &menu) {
|
||||||
|
@ -1480,7 +1488,7 @@ void BScreen::removeConfigMenu(FbTk::Menu &menu) {
|
||||||
if (erase_it != m_configmenu_list.end())
|
if (erase_it != m_configmenu_list.end())
|
||||||
m_configmenu_list.erase(erase_it);
|
m_configmenu_list.erase(erase_it);
|
||||||
|
|
||||||
if (!isShuttingdown())
|
if (!isShuttingdown() && m_configmenu.get())
|
||||||
setupConfigmenu(*m_configmenu.get());
|
setupConfigmenu(*m_configmenu.get());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue