} else {
rc_file = bstrdup(rc);
}
+ symlink_rc(rc_file);
config.setFile(rc_file);
no_focus = False;
menuTimestamps = new LinkedList<MenuTimestamp>;
- XrmInitialize();
load_rc();
#ifdef HAVE_GETPID
switch (screen->getPlacementPolicy()) {
case BScreen::CascadePlacement: placement = "CascadePlacement"; break;
+ case BScreen::BestFitPlacement: placement = "BestFitPlacement"; break;
case BScreen::ColSmartPlacement: placement = "ColSmartPlacement"; break;
default:
case BScreen::RowSmartPlacement: placement = "RowSmartPlacement"; break;
sprintf(name_lookup, "session.screen%d.focusModel", screen_number);
sprintf(class_lookup, "Session.Screen%d.FocusModel", screen_number);
if (config.getValue(name_lookup, class_lookup, s)) {
- cout << s << endl;
if (0 == strncasecmp(s.c_str(), "clicktofocus", s.length())) {
screen->saveAutoRaise(False);
screen->saveSloppyFocus(False);
screen->savePlacementPolicy(BScreen::RowSmartPlacement);
else if (0 == strncasecmp(s.c_str(), "ColSmartPlacement", s.length()))
screen->savePlacementPolicy(BScreen::ColSmartPlacement);
+ else if (0 == strncasecmp(s.c_str(), "BestFitPlacement", s.length()))
+ screen->savePlacementPolicy(BScreen::BestFitPlacement);
else
screen->savePlacementPolicy(BScreen::CascadePlacement);
} else
void Openbox::real_reconfigure(void) {
grab();
- XrmDatabase new_openboxrc = (XrmDatabase) 0;
- char style[MAXPATHLEN + 64];
-
- sprintf(style, "session.styleFile: %s", resource.style_file);
- XrmPutLineResource(&new_openboxrc, style);
-
- XrmDatabase old_openboxrc = XrmGetFileDatabase(rc_file);
-
- XrmMergeDatabases(new_openboxrc, &old_openboxrc);
- XrmPutFileDatabase(old_openboxrc, rc_file);
- if (old_openboxrc) XrmDestroyDatabase(old_openboxrc);
-
+ config.load();
+ config.setValue("session.styleFile", resource.style_file); // autosave's
+
for (int i = 0, n = menuTimestamps->count(); i < n; i++) {
MenuTimestamp *ts = menuTimestamps->remove(0);
if (old_screen && old_screen != screen)
old_screen->updateNetizenWindowFocus();
}
+
+#warning TODO: wrap in appropriate #ifdefs.
+
+void Openbox::symlink_rc(const char*rcfile)const{
+ char *homedir = getenv("HOME");
+
+ char *link_file = new char[strlen(homedir) + strlen("/.blackoxrc") + 1];
+ sprintf(link_file, "%s/.blackboxrc", homedir);
+ if(symlink(rcfile, link_file) == -1){
+ perror("Cannot create symlink");
+ }
+}