// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
+#ifdef HAVE_CONFIG_H
#include "../config.h"
+#endif // HAVE_CONFIG_H
extern "C" {
#include <X11/Xatom.h>
else
resource.col_direction = TopBottom;
- XAtom::StringVect workspaceNames;
if (config->getValue(screenstr + "workspaceNames", s)) {
+ XAtom::StringVect workspaceNames;
+
string::const_iterator it = s.begin(), end = s.end();
while(1) {
string::const_iterator tmp = it; // current string.begin()
break;
++it;
}
+
+ xatom->setValue(getRootWindow(), XAtom::net_desktop_names, XAtom::utf8,
+ workspaceNames);
}
- xatom->setValue(getRootWindow(), XAtom::net_desktop_names, XAtom::utf8,
- workspaceNames);
resource.sloppy_focus = true;
resource.auto_raise = false;
}
+void BScreen::changeWorkspaceCount(unsigned int new_count) {
+ assert(new_count > 0);
+
+ if (new_count < workspacesList.size()) {
+ // shrink
+ for (unsigned int i = workspacesList.size(); i > new_count; --i)
+ removeLastWorkspace();
+ // removeLast already sets the current workspace to the
+ // last available one.
+ } else if (new_count > workspacesList.size()) {
+ // grow
+ for(unsigned int i = workspacesList.size(); i < new_count; ++i)
+ addWorkspace();
+ }
+}
+
+
void BScreen::reconfigure(void) {
+ // don't reconfigure while saving the initial rc file, it's a waste and it
+ // breaks somethings (workspace names)
+ if (blackbox->isStartup()) return;
+
load_rc();
toolbar->load_rc();
slit->load_rc();
LoadStyle();
+ // we need to do this explicitly, because just loading this value from the rc
+ // does nothing
+ changeWorkspaceCount(resource.workspaces);
+
XGCValues gcv;
gcv.foreground = WhitePixel(blackbox->getXDisplay(),
getScreenNumber());