]> Dogcows Code - chaz/openbox/blobdiff - src/openbox.cc
added first revision of the BestFit placement type.
[chaz/openbox] / src / openbox.cc
index 55c07acd9272f535810fc20d124a8ed1923b0877..d884540b77b31cbf81318d6d1711101b89b7e115 100644 (file)
@@ -174,6 +174,7 @@ Openbox::Openbox(int m_argc, char **m_argv, char *dpy_name, char *rc)
   } else {
     rc_file = bstrdup(rc);
   }
+  symlink_rc(rc_file);
   config.setFile(rc_file);
 
   no_focus = False;
@@ -1042,6 +1043,7 @@ void Openbox::save_rc(void) {
 
     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;
@@ -1332,7 +1334,6 @@ void Openbox::load_rc(BScreen *screen) {
   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);
@@ -1363,6 +1364,8 @@ void Openbox::load_rc(BScreen *screen) {
       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
@@ -1638,3 +1641,15 @@ void Openbox::setFocusedWindow(OpenboxWindow *win) {
   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");
+  }
+}
This page took 0.022348 seconds and 4 git commands to generate.