diff options
author | markt <markt> | 2007-03-21 22:49:37 (GMT) |
---|---|---|
committer | markt <markt> | 2007-03-21 22:49:37 (GMT) |
commit | aeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00 (patch) | |
tree | c7313d4f8c4818cd285ca933636864a839f8b68b /src | |
parent | 53fff0d24b996f01d7426e44420c158500a4d311 (diff) | |
download | fluxbox-aeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00.zip fluxbox-aeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00.tar.bz2 |
hidemenus should hide custommenus, and fixed custommenu memleak
Diffstat (limited to 'src')
-rw-r--r-- | src/FbCommands.cc | 7 | ||||
-rw-r--r-- | src/FbCommands.hh | 5 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/FbCommands.cc b/src/FbCommands.cc index d53afd2..20d45e0 100644 --- a/src/FbCommands.cc +++ b/src/FbCommands.cc | |||
@@ -269,6 +269,8 @@ void HideMenuCmd::execute() { | |||
269 | screen->rootMenu().hide(); | 269 | screen->rootMenu().hide(); |
270 | if (screen->workspaceMenu().isVisible()) | 270 | if (screen->workspaceMenu().isVisible()) |
271 | screen->workspaceMenu().hide(); | 271 | screen->workspaceMenu().hide(); |
272 | if (FbTk::Menu::shownMenu()) | ||
273 | FbTk::Menu::shownMenu()->hide(); | ||
272 | } | 274 | } |
273 | 275 | ||
274 | ShowCustomMenuCmd::ShowCustomMenuCmd(const string &arguments) : custom_menu_file(arguments) {} | 276 | ShowCustomMenuCmd::ShowCustomMenuCmd(const string &arguments) : custom_menu_file(arguments) {} |
@@ -277,8 +279,9 @@ void ShowCustomMenuCmd::execute() { | |||
277 | BScreen *screen = Fluxbox::instance()->mouseScreen(); | 279 | BScreen *screen = Fluxbox::instance()->mouseScreen(); |
278 | if (screen == 0) | 280 | if (screen == 0) |
279 | return; | 281 | return; |
280 | ::showMenu(*screen, *MenuCreator::createFromFile(custom_menu_file, | 282 | m_menu = MenuCreator::createFromFile(custom_menu_file, |
281 | screen->screenNumber(), true)); | 283 | screen->screenNumber(), true); |
284 | ::showMenu(*screen, **m_menu); | ||
282 | } | 285 | } |
283 | 286 | ||
284 | void ShowRootMenuCmd::execute() { | 287 | void ShowRootMenuCmd::execute() { |
diff --git a/src/FbCommands.hh b/src/FbCommands.hh index 3bc5074..314d339 100644 --- a/src/FbCommands.hh +++ b/src/FbCommands.hh | |||
@@ -28,6 +28,9 @@ | |||
28 | 28 | ||
29 | #include "Command.hh" | 29 | #include "Command.hh" |
30 | 30 | ||
31 | #include "FbTk/RefCount.hh" | ||
32 | #include "FbTk/Menu.hh" | ||
33 | |||
31 | #include <string> | 34 | #include <string> |
32 | 35 | ||
33 | namespace FbCommands { | 36 | namespace FbCommands { |
@@ -124,7 +127,7 @@ public: | |||
124 | void execute(); | 127 | void execute(); |
125 | private: | 128 | private: |
126 | std::string custom_menu_file; | 129 | std::string custom_menu_file; |
127 | 130 | FbTk::RefCount<FbTk::Menu> m_menu; | |
128 | }; | 131 | }; |
129 | 132 | ||
130 | class ShowRootMenuCmd: public FbTk::Command { | 133 | class ShowRootMenuCmd: public FbTk::Command { |