diff options
Diffstat (limited to 'src/fluxbox.cc')
-rw-r--r-- | src/fluxbox.cc | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/fluxbox.cc b/src/fluxbox.cc index eaa62f9..027da76 100644 --- a/src/fluxbox.cc +++ b/src/fluxbox.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: fluxbox.cc,v 1.170 2003/07/10 12:00:49 fluxgen Exp $ | 25 | // $Id: fluxbox.cc,v 1.171 2003/07/18 15:40:55 rathnor Exp $ |
26 | 26 | ||
27 | #include "fluxbox.hh" | 27 | #include "fluxbox.hh" |
28 | 28 | ||
@@ -388,7 +388,9 @@ Fluxbox::Titlebar Fluxbox::s_titlebar_right[] = {MINIMIZE, MAXIMIZE, CLOSE}; | |||
388 | Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfilename) | 388 | Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfilename) |
389 | : FbTk::App(dpy_name), | 389 | : FbTk::App(dpy_name), |
390 | m_fbatoms(new FbAtoms()), | 390 | m_fbatoms(new FbAtoms()), |
391 | m_resourcemanager(), m_screen_rm(), | 391 | m_resourcemanager(rcfilename, true), |
392 | // TODO: shouldn't need a separate one for screen | ||
393 | m_screen_rm(m_resourcemanager), | ||
392 | m_rc_tabs(m_resourcemanager, true, "session.tabs", "Session.Tabs"), | 394 | m_rc_tabs(m_resourcemanager, true, "session.tabs", "Session.Tabs"), |
393 | m_rc_ignoreborder(m_resourcemanager, false, "session.ignoreBorder", "Session.IgnoreBorder"), | 395 | m_rc_ignoreborder(m_resourcemanager, false, "session.ignoreBorder", "Session.IgnoreBorder"), |
394 | m_rc_colors_per_channel(m_resourcemanager, 4, | 396 | m_rc_colors_per_channel(m_resourcemanager, 4, |
@@ -463,6 +465,8 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile | |||
463 | XRRQueryExtension(disp, &m_randr_event_type, &error_base); | 465 | XRRQueryExtension(disp, &m_randr_event_type, &error_base); |
464 | #endif // HAVE_RANDR | 466 | #endif // HAVE_RANDR |
465 | 467 | ||
468 | load_rc(); | ||
469 | |||
466 | // setup atom handlers before we create any windows | 470 | // setup atom handlers before we create any windows |
467 | #ifdef USE_GNOME | 471 | #ifdef USE_GNOME |
468 | addAtomHandler(new Gnome()); // for gnome 1 atom support | 472 | addAtomHandler(new Gnome()); // for gnome 1 atom support |
@@ -493,13 +497,12 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile | |||
493 | m_fluxbox_pid = XInternAtom(disp, "_BLACKBOX_PID", False); | 497 | m_fluxbox_pid = XInternAtom(disp, "_BLACKBOX_PID", False); |
494 | #endif // HAVE_GETPID | 498 | #endif // HAVE_GETPID |
495 | 499 | ||
496 | load_rc(); | ||
497 | // Allocate screens | 500 | // Allocate screens |
498 | for (int i = 0; i < ScreenCount(display()); i++) { | 501 | for (int i = 0; i < ScreenCount(display()); i++) { |
499 | char scrname[128], altscrname[128]; | 502 | char scrname[128], altscrname[128]; |
500 | sprintf(scrname, "session.screen%d", i); | 503 | sprintf(scrname, "session.screen%d", i); |
501 | sprintf(altscrname, "session.Screen%d", i); | 504 | sprintf(altscrname, "session.Screen%d", i); |
502 | BScreen *screen = new BScreen(m_screen_rm, | 505 | BScreen *screen = new BScreen(m_screen_rm.lock(), |
503 | scrname, altscrname, | 506 | scrname, altscrname, |
504 | i, getNumberOfLayers()); | 507 | i, getNumberOfLayers()); |
505 | if (! screen->isScreenManaged()) { | 508 | if (! screen->isScreenManaged()) { |
@@ -563,7 +566,13 @@ Fluxbox::Fluxbox(int argc, char **argv, const char *dpy_name, const char *rcfile | |||
563 | // Create keybindings handler and load keys file | 566 | // Create keybindings handler and load keys file |
564 | m_key.reset(new Keys(StringUtil::expandFilename(*m_rc_keyfile).c_str())); | 567 | m_key.reset(new Keys(StringUtil::expandFilename(*m_rc_keyfile).c_str())); |
565 | 568 | ||
569 | m_resourcemanager.unlock(); | ||
566 | ungrab(); | 570 | ungrab(); |
571 | |||
572 | #ifdef DEBUG | ||
573 | if (m_resourcemanager.lockDepth() != 0) | ||
574 | cerr<<"--- resource manager lockdepth = "<<m_resourcemanager.lockDepth()<<endl; | ||
575 | #endif //DEBUG | ||
567 | m_starting = false; | 576 | m_starting = false; |
568 | } | 577 | } |
569 | 578 | ||