diff options
author | fluxgen <fluxgen> | 2003-04-26 15:00:25 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-04-26 15:00:25 (GMT) |
commit | a26d408964032adec3d4153dc642c5fdf28fb89d (patch) | |
tree | b05c3d4ce17596d33386364f1f53190cf07429f5 | |
parent | 5856d7af0d04bf48d4659331b464e171e10343fd (diff) | |
download | fluxbox-a26d408964032adec3d4153dc642c5fdf28fb89d.zip fluxbox-a26d408964032adec3d4153dc642c5fdf28fb89d.tar.bz2 |
fixed menu bug
-rw-r--r-- | src/Screen.cc | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 226c352..76d343c 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Screen.cc,v 1.136 2003/04/26 05:42:35 rathnor Exp $ | 25 | // $Id: Screen.cc,v 1.137 2003/04/26 15:00:25 fluxgen Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | #include "Screen.hh" | 28 | #include "Screen.hh" |
@@ -1731,23 +1731,12 @@ void BScreen::initMenu() { | |||
1731 | I18n *i18n = I18n::instance(); | 1731 | I18n *i18n = I18n::instance(); |
1732 | 1732 | ||
1733 | if (m_rootmenu.get()) { | 1733 | if (m_rootmenu.get()) { |
1734 | /* Rootmenus::iterator it = rootmenuList.begin(); | 1734 | // since all menus in root is submenus in m_rootmenu |
1735 | Rootmenus::iterator it_end = rootmenuList.end(); | 1735 | // just remove every item in m_rootmenu and then clear rootmenuList |
1736 | for (; it != it_end; ++it) { | ||
1737 | if (*it != m_configmenu.get()) { | ||
1738 | delete *it; | ||
1739 | } | ||
1740 | } | ||
1741 | rootmenuList.clear(); | ||
1742 | */ | ||
1743 | while (!rootmenuList.empty()) { | ||
1744 | delete rootmenuList.back(); | ||
1745 | rootmenuList.pop_back(); | ||
1746 | } | ||
1747 | |||
1748 | while (m_rootmenu->numberOfItems()) | 1736 | while (m_rootmenu->numberOfItems()) |
1749 | m_rootmenu->remove(0); | 1737 | m_rootmenu->remove(0); |
1750 | 1738 | rootmenuList.clear(); | |
1739 | |||
1751 | } else | 1740 | } else |
1752 | m_rootmenu.reset(createMenuFromScreen(*this)); | 1741 | m_rootmenu.reset(createMenuFromScreen(*this)); |
1753 | 1742 | ||
@@ -1906,7 +1895,10 @@ bool BScreen::parseMenuFile(ifstream &file, FbTk::Menu &menu, int &row) { | |||
1906 | "no label defined")); | 1895 | "no label defined")); |
1907 | cerr<<"Row: "<<row<<endl; | 1896 | cerr<<"Row: "<<row<<endl; |
1908 | } else { | 1897 | } else { |
1909 | cerr<<"inserts configmenu: "<<m_configmenu.get()<<endl; | 1898 | #ifdef DEBUG |
1899 | cerr<<__FILE__<<"("<<__FUNCTION__<< | ||
1900 | "): inserts configmenu: "<<m_configmenu.get()<<endl; | ||
1901 | #endif // DEBUG | ||
1910 | menu.insert(str_label.c_str(), m_configmenu.get()); | 1902 | menu.insert(str_label.c_str(), m_configmenu.get()); |
1911 | } | 1903 | } |
1912 | } // end of config | 1904 | } // end of config |
@@ -2057,6 +2049,8 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) { | |||
2057 | s_a_reconf_macro->add(reconf_cmd); | 2049 | s_a_reconf_macro->add(reconf_cmd); |
2058 | FbTk::RefCount<FbTk::Command> save_and_reconfigure(s_a_reconf_macro); | 2050 | FbTk::RefCount<FbTk::Command> save_and_reconfigure(s_a_reconf_macro); |
2059 | // create focus menu | 2051 | // create focus menu |
2052 | // we don't set this to internal menu so will | ||
2053 | // be deleted toghether with the parent | ||
2060 | FbTk::Menu *focus_menu = createMenuFromScreen(*this); | 2054 | FbTk::Menu *focus_menu = createMenuFromScreen(*this); |
2061 | 2055 | ||
2062 | focus_menu->insert(new FocusModelMenuItem(i18n->getMessage( | 2056 | focus_menu->insert(new FocusModelMenuItem(i18n->getMessage( |
@@ -2088,16 +2082,16 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) { | |||
2088 | save_and_reconfigure)); | 2082 | save_and_reconfigure)); |
2089 | 2083 | ||
2090 | focus_menu->update(); | 2084 | focus_menu->update(); |
2091 | rootmenuList.push_back(focus_menu); | ||
2092 | |||
2093 | 2085 | ||
2094 | menu.insert(i18n->getMessage( | 2086 | menu.insert(i18n->getMessage( |
2095 | ConfigmenuSet, ConfigmenuFocusModel, | 2087 | ConfigmenuSet, ConfigmenuFocusModel, |
2096 | "Focus Model"), | 2088 | "Focus Model"), |
2097 | focus_menu); | 2089 | focus_menu); |
2098 | #ifdef SLIT | 2090 | #ifdef SLIT |
2099 | if (getSlit() != 0) | 2091 | if (getSlit() != 0) { |
2092 | getSlit()->menu().setInternalMenu(); | ||
2100 | menu.insert("Slit", &getSlit()->menu()); | 2093 | menu.insert("Slit", &getSlit()->menu()); |
2094 | } | ||
2101 | #endif // SLIT | 2095 | #endif // SLIT |
2102 | menu.insert(i18n->getMessage( | 2096 | menu.insert(i18n->getMessage( |
2103 | ToolbarSet, ToolbarToolbarTitle, | 2097 | ToolbarSet, ToolbarToolbarTitle, |