aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/FbCommands.cc2
-rw-r--r--src/fluxbox.cc26
-rw-r--r--src/fluxbox.hh6
3 files changed, 8 insertions, 26 deletions
diff --git a/src/FbCommands.cc b/src/FbCommands.cc
index cb55469..91490d3 100644
--- a/src/FbCommands.cc
+++ b/src/FbCommands.cc
@@ -80,7 +80,7 @@ void showMenu(const BScreen &screen, FbTk::Menu &menu) {
80 // we dont show the menu here because fluxbox 80 // we dont show the menu here because fluxbox
81 // will bring up the rootmenu after the timed 81 // will bring up the rootmenu after the timed
82 // reread of the menu 82 // reread of the menu
83 fb->rereadMenu(true); 83 fb->rereadMenu();
84 return; 84 return;
85 } 85 }
86 } 86 }
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 300d683..d765d3c 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -399,7 +399,7 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile
399 //XSynchronize(disp, False); 399 //XSynchronize(disp, False);
400 sync(false); 400 sync(false);
401 401
402 m_reconfigure_wait = m_reread_menu_wait = false; 402 m_reconfigure_wait = false;
403 403
404 m_resourcemanager.unlock(); 404 m_resourcemanager.unlock();
405 ungrab(); 405 ungrab();
@@ -1484,28 +1484,15 @@ bool Fluxbox::menuTimestampsChanged() const {
1484 return false; 1484 return false;
1485} 1485}
1486 1486
1487void Fluxbox::rereadMenu(bool show_after_reread) { 1487void Fluxbox::rereadMenu() {
1488 m_reread_menu_wait = true;
1489 m_show_menu_after_reread = show_after_reread;
1490 m_reconfig_timer.start();
1491}
1492
1493
1494void Fluxbox::real_rereadMenu() {
1495
1496 clearMenuFilenames(); 1488 clearMenuFilenames();
1497 1489
1498 for_each(m_screen_list.begin(), 1490 for_each(m_screen_list.begin(),
1499 m_screen_list.end(), 1491 m_screen_list.end(),
1500 mem_fun(&BScreen::rereadMenu)); 1492 mem_fun(&BScreen::rereadMenu));
1501 1493
1502 if(m_show_menu_after_reread) { 1494 FbCommands::ShowRootMenuCmd showcmd;
1503 1495 showcmd.execute();
1504 FbCommands::ShowRootMenuCmd showcmd;
1505 showcmd.execute();
1506
1507 m_show_menu_after_reread = false;
1508 }
1509} 1496}
1510 1497
1511void Fluxbox::saveMenuFilename(const char *filename) { 1498void Fluxbox::saveMenuFilename(const char *filename) {
@@ -1546,10 +1533,7 @@ void Fluxbox::timed_reconfigure() {
1546 if (m_reconfigure_wait) 1533 if (m_reconfigure_wait)
1547 real_reconfigure(); 1534 real_reconfigure();
1548 1535
1549 if (m_reread_menu_wait) 1536 m_reconfigure_wait = false;
1550 real_rereadMenu();
1551
1552 m_reconfigure_wait = m_reread_menu_wait = false;
1553} 1537}
1554 1538
1555void Fluxbox::revertFocus() { 1539void Fluxbox::revertFocus() {
diff --git a/src/fluxbox.hh b/src/fluxbox.hh
index d930ad1..e7c7556 100644
--- a/src/fluxbox.hh
+++ b/src/fluxbox.hh
@@ -149,7 +149,7 @@ public:
149 void removeGroupSearch(Window win); 149 void removeGroupSearch(Window win);
150 void restart(const char *command = 0); 150 void restart(const char *command = 0);
151 void reconfigure(); 151 void reconfigure();
152 void rereadMenu(bool show_after_reread = false); 152 void rereadMenu();
153 /// reloads the menus if the timestamps changed 153 /// reloads the menus if the timestamps changed
154 154
155 /// handle any system signal sent to the application 155 /// handle any system signal sent to the application
@@ -201,7 +201,6 @@ private:
201 std::string getRcFilename(); 201 std::string getRcFilename();
202 void load_rc(); 202 void load_rc();
203 203
204 void real_rereadMenu();
205 void real_reconfigure(); 204 void real_reconfigure();
206 205
207 void handleEvent(XEvent *xe); 206 void handleEvent(XEvent *xe);
@@ -251,7 +250,7 @@ private:
251 250
252 Atom m_fluxbox_pid; 251 Atom m_fluxbox_pid;
253 252
254 bool m_reconfigure_wait, m_reread_menu_wait; 253 bool m_reconfigure_wait;
255 Time m_last_time; 254 Time m_last_time;
256 Window m_masked; 255 Window m_masked;
257 std::string m_rc_file; ///< resource filename 256 std::string m_rc_file; ///< resource filename
@@ -279,7 +278,6 @@ private:
279 bool m_starting; 278 bool m_starting;
280 bool m_restarting; 279 bool m_restarting;
281 bool m_shutdown; 280 bool m_shutdown;
282 bool m_show_menu_after_reread;
283 int m_server_grabs; 281 int m_server_grabs;
284 int m_randr_event_type; ///< the type number of randr event 282 int m_randr_event_type; ///< the type number of randr event
285 int m_shape_eventbase; ///< event base for shape events 283 int m_shape_eventbase; ///< event base for shape events