aboutsummaryrefslogtreecommitdiff
path: root/src/fluxbox.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r--src/fluxbox.cc17
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
1251void Fluxbox::timed_reconfigure() { 1249void 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
1258void Fluxbox::revertFocus() { 1257void Fluxbox::revertFocus() {