diff options
author | markt <markt> | 2007-03-21 22:47:56 (GMT) |
---|---|---|
committer | markt <markt> | 2007-03-21 22:47:56 (GMT) |
commit | 2b7f9a5899a1bfc680761ae6792af0eeb99d76f3 (patch) | |
tree | c80e82fe26b383a5135ad1c07396581662edd052 | |
parent | ff3ea6f5aa685dbf1b285905ccdb6c0a6e9a0e9f (diff) | |
download | fluxbox_lack-2b7f9a5899a1bfc680761ae6792af0eeb99d76f3.zip fluxbox_lack-2b7f9a5899a1bfc680761ae6792af0eeb99d76f3.tar.bz2 |
hidemenus hide custommenus and fix custommenu memleak
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/FbCommands.cc | 7 | ||||
-rw-r--r-- | src/FbCommands.hh | 5 |
3 files changed, 13 insertions, 3 deletions
@@ -1,5 +1,9 @@ | |||
1 | (Format: Year/Month/Day) | 1 | (Format: Year/Month/Day) |
2 | Changes for 1.0rc3: | 2 | Changes for 1.0rc3: |
3 | *07/03/21: | ||
4 | * HideMenus didn't work on CustomMenus, and also fixed a memleak with | ||
5 | CustomMenu (Mark + thanks Julien Trolet) | ||
6 | FbCommands.cc/hh | ||
3 | *07/03/20: | 7 | *07/03/20: |
4 | * Updated doc/asciidoc/fluxbox.txt (Mathias) | 8 | * Updated doc/asciidoc/fluxbox.txt (Mathias) |
5 | *07/03/19: | 9 | *07/03/19: |
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 { |