X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FScreen.cc;h=eee7db1085692b2e9fd7b2f458ca85cb5ae33d73;hb=28594da6de001f1d8b6b975286032302db3a6491;hp=378d61e1d0b14fbb8704015e102f1176f25174a7;hpb=da67802bc8bd42741fae491bf932ff17ee16f0f7;p=chaz%2Fopenbox diff --git a/src/Screen.cc b/src/Screen.cc index 378d61e1..eee7db10 100644 --- a/src/Screen.cc +++ b/src/Screen.cc @@ -212,7 +212,7 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(bb, scrn) { 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); @@ -537,6 +537,13 @@ void BScreen::saveAllowScrollLock(bool a) { } +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); @@ -564,6 +571,7 @@ void BScreen::save_rc(void) { savePlaceIgnoreShaded(resource.ignore_shaded); savePlaceIgnoreMaximized(resource.ignore_maximized); saveAllowScrollLock(resource.allow_scroll_lock); + saveWorkspaceWarping(resource.workspace_warping); toolbar->save_rc(); slit->save_rc(); @@ -699,9 +707,13 @@ void BScreen::load_rc(void) { 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; } @@ -1245,6 +1257,9 @@ void BScreen::manageWindow(Window w) { void BScreen::unmanageWindow(BlackboxWindow *w, bool remap) { w->restore(remap); + // Remove the modality so that its parent won't try to re-focus the window + if (w->isModal()) w->setModal(False); + if (w->getWorkspaceNumber() != BSENTINEL && w->getWindowNumber() != BSENTINEL) getWorkspace(w->getWorkspaceNumber())->removeWindow(w);