aboutsummaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
authorsimonb <simonb>2006-04-24 13:34:14 (GMT)
committersimonb <simonb>2006-04-24 13:34:14 (GMT)
commitf6a072430d4de159e229d6172adc5ba5ae985512 (patch)
treee87832fba92188131c4e9441b72c0e9c03666660 /src/Screen.cc
parent731f0deaafff3a4fe4353bbfc421a5dc3d5a2337 (diff)
downloadfluxbox_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.cc5
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
733void BScreen::removeExtraWindowMenu(FbTk::Menu *menu) { 734void 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
744void BScreen::hideMenus() { 746void 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,
1501void BScreen::initMenus() { 1504void 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}