aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkt <markt>2007-03-21 22:49:37 (GMT)
committermarkt <markt>2007-03-21 22:49:37 (GMT)
commitaeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00 (patch)
treec7313d4f8c4818cd285ca933636864a839f8b68b
parent53fff0d24b996f01d7426e44420c158500a4d311 (diff)
downloadfluxbox-aeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00.zip
fluxbox-aeeabc3b2f72e8cd4dac9ffc74b75a1c8e508c00.tar.bz2
hidemenus should hide custommenus, and fixed custommenu memleak
-rw-r--r--ChangeLog3
-rw-r--r--src/FbCommands.cc7
-rw-r--r--src/FbCommands.hh5
3 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 22e74d5..7c4354e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
1 (Format: Year/Month/Day) 1 (Format: Year/Month/Day)
2Changes for 1.0rc3: 2Changes for 1.0rc3:
3*07/03/21: 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
4 * Added new command TypeAheadFocus (Mark) 7 * Added new command TypeAheadFocus (Mark)
5 - syntax is the same as for NextWindow; when you run the command, you can 8 - syntax is the same as for NextWindow; when you run the command, you can
6 start typing the title of the window, and it will gain focus; pressing 9 start typing the title of the window, and it will gain focus; pressing
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
274ShowCustomMenuCmd::ShowCustomMenuCmd(const string &arguments) : custom_menu_file(arguments) {} 276ShowCustomMenuCmd::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
284void ShowRootMenuCmd::execute() { 287void 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
33namespace FbCommands { 36namespace FbCommands {
@@ -124,7 +127,7 @@ public:
124 void execute(); 127 void execute();
125private: 128private:
126 std::string custom_menu_file; 129 std::string custom_menu_file;
127 130 FbTk::RefCount<FbTk::Menu> m_menu;
128}; 131};
129 132
130class ShowRootMenuCmd: public FbTk::Command { 133class ShowRootMenuCmd: public FbTk::Command {