diff options
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r-- | src/fluxbox.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc index 4692a1f..224c7f0 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc | |||
@@ -303,7 +303,7 @@ Fluxbox::Fluxbox(int argc, char **argv, | |||
303 | // Because when the command is executed we shouldn't do reconfig directly | 303 | // Because when the command is executed we shouldn't do reconfig directly |
304 | // because it could affect ongoing menu stuff so we need to reconfig in | 304 | // because it could affect ongoing menu stuff so we need to reconfig in |
305 | // the next event "round". | 305 | // the next event "round". |
306 | FbTk::RefCount<FbTk::Command<void> > reconfig_cmd(new FbTk::SimpleCommand<Fluxbox>(*this, &Fluxbox::timed_reconfigure)); | 306 | FbTk::RefCount<FbTk::Command<void> > reconfig_cmd(new FbTk::SimpleCommand<Fluxbox>(*this, &Fluxbox::reconfigure)); |
307 | m_reconfig_timer.setTimeout(0, 1); | 307 | m_reconfig_timer.setTimeout(0, 1); |
308 | m_reconfig_timer.setCommand(reconfig_cmd); | 308 | m_reconfig_timer.setCommand(reconfig_cmd); |
309 | m_reconfig_timer.fireOnce(true); | 309 | m_reconfig_timer.fireOnce(true); |
@@ -435,8 +435,6 @@ Fluxbox::Fluxbox(int argc, char **argv, | |||
435 | //XSynchronize(disp, False); | 435 | //XSynchronize(disp, False); |
436 | sync(false); | 436 | sync(false); |
437 | 437 | ||
438 | m_reconfigure_wait = false; | ||
439 | |||
440 | ungrab(); | 438 | ungrab(); |
441 | 439 | ||
442 | m_starting = false; | 440 | m_starting = false; |
@@ -896,7 +894,7 @@ void Fluxbox::handleSignal(int signum) { | |||
896 | load_rc(); | 894 | load_rc(); |
897 | break; | 895 | break; |
898 | case SIGUSR2: | 896 | case SIGUSR2: |
899 | reconfigure(); | 897 | m_reconfig_timer.start(); |
900 | break; | 898 | break; |
901 | #endif | 899 | #endif |
902 | case SIGSEGV: | 900 | case SIGSEGV: |
@@ -1248,11 +1246,12 @@ BScreen *Fluxbox::findScreen(int id) { | |||
1248 | return result; | 1246 | return result; |
1249 | } | 1247 | } |
1250 | 1248 | ||
1251 | void Fluxbox::timed_reconfigure() { | 1249 | void Fluxbox::reconfigure() { |
1252 | if (m_reconfigure_wait) | 1250 | std::auto_ptr<FbTk::Lua> t = m_l; |
1253 | real_reconfigure(); | 1251 | m_l.reset(new Lua); |
1254 | 1252 | m_resourcemanager.setLua(*m_l); | |
1255 | m_reconfigure_wait = false; | 1253 | load_rc(); |
1254 | STLUtil::forAll(m_screen_list, mem_fun(&BScreen::reconfigure)); | ||
1256 | } | 1255 | } |
1257 | 1256 | ||
1258 | void Fluxbox::revertFocus() { | 1257 | void Fluxbox::revertFocus() { |