iconmenu = new Iconmenu(this);
configmenu = new Configmenu(this);
- if (resource.workspaces != 0) {
+ if (resource.workspaces > 0) {
for (unsigned int i = 0; i < resource.workspaces; ++i) {
Workspace *wkspc = new Workspace(this, workspacesList.size());
workspacesList.push_back(wkspc);
}
+void BScreen::saveWorkspaceWarping(bool w) {
+ resource.workspace_warping = w;
+ config->setValue(screenstr + "workspaceWarping",
+ resource.workspace_warping);
+}
+
+
void BScreen::save_rc(void) {
saveSloppyFocus(resource.sloppy_focus);
saveAutoRaise(resource.auto_raise);
savePlaceIgnoreShaded(resource.ignore_shaded);
savePlaceIgnoreMaximized(resource.ignore_maximized);
saveAllowScrollLock(resource.allow_scroll_lock);
+ saveWorkspaceWarping(resource.workspace_warping);
toolbar->save_rc();
slit->save_rc();
resource.ignore_maximized))
resource.ignore_maximized = true;
- if (! config->getValue(screenstr + "disableBindingsWithScrollLock",
- resource.allow_scroll_lock))
- resource.allow_scroll_lock = false;
+if (! config->getValue(screenstr + "disableBindingsWithScrollLock",
+ resource.allow_scroll_lock))
+ resource.allow_scroll_lock = false;
+
+ if (! config->getValue(screenstr + "workspaceWarping",
+ resource.workspace_warping))
+ resource.workspace_warping = false;
}
void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) {
w->restore(remap);
- if (w->getWorkspaceNumber() != BSENTINEL &&
- w->getWindowNumber() != BSENTINEL)
- getWorkspace(w->getWorkspaceNumber())->removeWindow(w);
- else if (w->isIconic())
- removeIcon(w);
-
if (w->isNormal()) {
// we don't list non-normal windows as managed windows
windowList.remove(w);
assert(it != end); // the window wasnt a desktop window?
}
- if (blackbox->getFocusedWindow() == w)
- blackbox->setFocusedWindow((BlackboxWindow *) 0);
-
removeNetizen(w->getClientWindow());
/*
void BScreen::raiseWindows(Window *workspace_stack, unsigned int num) {
// the 13 represents the number of blackbox windows such as menus
+ int bbwins = 13;
+#ifdef XINERAMA
+ ++bbwins;
+#endif // XINERAMA
+
Window *session_stack = new
- Window[(num + workspacesList.size() + rootmenuList.size() + 13)];
+ Window[(num + workspacesList.size() + rootmenuList.size() + bbwins)];
unsigned int i = 0, k = num;
XRaiseWindow(blackbox->getXDisplay(), iconmenu->getWindowID());
*(session_stack + i++) = configmenu->getFocusmenu()->getWindowID();
*(session_stack + i++) = configmenu->getPlacementmenu()->getWindowID();
+#ifdef XINERAMA
+ *(session_stack + i++) = configmenu->getXineramamenu()->getWindowID();
+#endif // XINERAMA
*(session_stack + i++) = configmenu->getWindowID();
*(session_stack + i++) = slit->getMenu()->getDirectionmenu()->getWindowID();