-#ifdef SLIT
-Slit *Openbox::searchSlit(Window window) {
- SlitLookup::iterator it = slitSearchList.find(window);
- if (it == slitSearchList.end())
- return (Slit *) 0;
- return it->second;
-}
-#endif // SLIT
-
-
-void Openbox::saveWindowSearch(Window window, OpenboxWindow *data) {
- windowSearchList.insert(WindowLookupPair(window, data));
-}
-
-
-void Openbox::saveGroupSearch(Window window, OpenboxWindow *data) {
- groupSearchList.insert(WindowLookupPair(window, data));
-}
-
-
-void Openbox::saveMenuSearch(Window window, Basemenu *data) {
- menuSearchList.insert(MenuLookupPair(window, data));
-}
-
-
-void Openbox::saveToolbarSearch(Window window, Toolbar *data) {
- toolbarSearchList.insert(ToolbarLookupPair(window, data));
-}
-
-
-#ifdef SLIT
-void Openbox::saveSlitSearch(Window window, Slit *data) {
- slitSearchList.insert(SlitLookupPair(window, data));
-}
-#endif // SLIT
-
-
-void Openbox::removeWindowSearch(Window window) {
- windowSearchList.erase(window);
-}
-
-
-void Openbox::removeGroupSearch(Window window) {
- groupSearchList.erase(window);
-}
-
-
-void Openbox::removeMenuSearch(Window window) {
- menuSearchList.erase(window);
-}
-
-
-void Openbox::removeToolbarSearch(Window window) {
- toolbarSearchList.erase(window);
-}
-
-
-#ifdef SLIT
-void Openbox::removeSlitSearch(Window window) {
- slitSearchList.erase(window);
-}
-#endif // SLIT
-
-
-void Openbox::restart(const char *prog) {
- shutdown();
-
- if (prog) {
- execlp(prog, prog, NULL);
- perror(prog);
- }
-
- // fall back in case the above execlp doesn't work
- execvp(argv[0], argv);
- execvp(basename(argv[0]), argv);
-}
-
-
-void Openbox::shutdown() {
- BaseDisplay::shutdown();
-
- XSetInputFocus(getXDisplay(), PointerRoot, None, CurrentTime);
-
- std::for_each(screenList.begin(), screenList.end(),
- std::mem_fun(&BScreen::shutdown));
-
- XSync(getXDisplay(), False);
-}
-
-
-void Openbox::save() {
- config.setAutoSave(false);
-
- // save all values as they are so that the defaults will be written to the rc
- // file
-
- config.setValue("session.menuFile", getMenuFilename());
- config.setValue("session.colorsPerChannel",
- resource.colors_per_channel);
- config.setValue("session.styleFile", resource.style_file);
- config.setValue("session.titlebarLayout", resource.titlebar_layout);
- config.setValue("session.doubleClickInterval",
- (long)resource.double_click_interval);
- config.setValue("session.autoRaiseDelay",
- ((resource.auto_raise_delay.tv_sec * 1000) +
- (resource.auto_raise_delay.tv_usec / 1000)));
- config.setValue("session.cacheLife", (long)resource.cache_life / 60000);
- config.setValue("session.cacheMax", (long)resource.cache_max);
-
- std::for_each(screenList.begin(), screenList.end(),
- std::mem_fun(&BScreen::save));
-
- config.setAutoSave(true);
- config.save();