diff options
author | simonb <simonb> | 2006-04-24 13:34:14 (GMT) |
---|---|---|
committer | simonb <simonb> | 2006-04-24 13:34:14 (GMT) |
commit | f6a072430d4de159e229d6172adc5ba5ae985512 (patch) | |
tree | e87832fba92188131c4e9441b72c0e9c03666660 /src/Screen.cc | |
parent | 731f0deaafff3a4fe4353bbfc421a5dc3d5a2337 (diff) | |
download | fluxbox_pavel-f6a072430d4de159e229d6172adc5ba5ae985512.zip fluxbox_pavel-f6a072430d4de159e229d6172adc5ba5ae985512.tar.bz2 |
fix memory leaks in menu code
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index a41fb0f..03ec510 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -728,6 +728,7 @@ void BScreen::addExtraWindowMenu(const char *label, FbTk::Menu *menu) { | |||
728 | m_extramenus.push_back(std::make_pair(label, menu)); | 728 | m_extramenus.push_back(std::make_pair(label, menu)); |
729 | // recreate window menu | 729 | // recreate window menu |
730 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); | 730 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); |
731 | m_windowmenu->setInternalMenu(); | ||
731 | } | 732 | } |
732 | 733 | ||
733 | void BScreen::removeExtraWindowMenu(FbTk::Menu *menu) { | 734 | void BScreen::removeExtraWindowMenu(FbTk::Menu *menu) { |
@@ -739,6 +740,7 @@ void BScreen::removeExtraWindowMenu(FbTk::Menu *menu) { | |||
739 | m_extramenus.erase(it); | 740 | m_extramenus.erase(it); |
740 | // recreate window menu | 741 | // recreate window menu |
741 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); | 742 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); |
743 | m_windowmenu->setInternalMenu(); | ||
742 | } | 744 | } |
743 | 745 | ||
744 | void BScreen::hideMenus() { | 746 | void BScreen::hideMenus() { |
@@ -827,6 +829,7 @@ void BScreen::reconfigure() { | |||
827 | m_configmenu->reconfigure(); | 829 | m_configmenu->reconfigure(); |
828 | // recreate window menu | 830 | // recreate window menu |
829 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); | 831 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); |
832 | m_windowmenu->setInternalMenu(); | ||
830 | 833 | ||
831 | // We need to check to see if the timestamps | 834 | // We need to check to see if the timestamps |
832 | // changed before we actually can restore the menus | 835 | // changed before we actually can restore the menus |
@@ -1501,6 +1504,7 @@ void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, | |||
1501 | void BScreen::initMenus() { | 1504 | void BScreen::initMenus() { |
1502 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); | 1505 | m_workspacemenu.reset(MenuCreator::createMenuType("workspacemenu", screenNumber())); |
1503 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); | 1506 | m_windowmenu.reset(MenuCreator::createMenuType("windowmenu", screenNumber())); |
1507 | m_windowmenu->setInternalMenu(); | ||
1504 | initMenu(); | 1508 | initMenu(); |
1505 | } | 1509 | } |
1506 | 1510 | ||
@@ -1554,6 +1558,7 @@ void BScreen::removeConfigMenu(FbTk::Menu &menu) { | |||
1554 | FbTk::Select2nd<Configmenus::value_type>())); | 1558 | FbTk::Select2nd<Configmenus::value_type>())); |
1555 | if (erase_it != m_configmenu_list.end()) | 1559 | if (erase_it != m_configmenu_list.end()) |
1556 | m_configmenu_list.erase(erase_it); | 1560 | m_configmenu_list.erase(erase_it); |
1561 | |||
1557 | setupConfigmenu(*m_configmenu.get()); | 1562 | setupConfigmenu(*m_configmenu.get()); |
1558 | 1563 | ||
1559 | } | 1564 | } |