X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Fclient.cc;h=72a98afbf7338f4602494380ac214abbb525683e;hb=eccab56a6c06c9c2f5764d7913fd794961f60214;hp=f07de8df40d8d6d00c91bf2b5d3b380cb6f90806;hpb=d7cc09cebd23e052f230414f0ad7fb385e3cd2ef;p=chaz%2Fopenbox diff --git a/src/client.cc b/src/client.cc index f07de8df..72a98afb 100644 --- a/src/client.cc +++ b/src/client.cc @@ -658,8 +658,6 @@ void OBClient::setDesktop(long target) if (target == _desktop) return; printf("Setting desktop %ld\n", target); - assert(target >= 0 || target == (signed)0xffffffff); - //assert(target == 0xffffffff || target < MAX); if (!(target >= 0 || target == (signed)0xffffffff)) return; @@ -670,8 +668,12 @@ void OBClient::setDesktop(long target) otk::OBProperty::Atom_Cardinal, (unsigned)_desktop); - - // XXX: move the window to the new desktop + // 'move' the window to the new desktop + if (_desktop == Openbox::instance->screen(_screen)->desktop() || + _desktop == (signed)0xffffffff) + frame->show(); + else + frame->hide(); } @@ -1066,21 +1068,6 @@ void OBClient::changeState() } -void OBClient::setStackLayer(int l) -{ - if (l == 0) - _above = _below = false; // normal - else if (l > 0) { - _above = true; - _below = false; // above - } else { - _above = false; - _below = true; // below - } - changeState(); -} - - void OBClient::shade(bool shade) { if (shade == _shaded) return; // already done @@ -1094,10 +1081,12 @@ void OBClient::shade(bool shade) bool OBClient::focus() { - if (!(_can_focus || _focus_notify) || _focused) return false; + if (!(_can_focus || _focus_notify)) return false; + if (_focused) return true; if (_can_focus) - XSetInputFocus(otk::OBDisplay::display, _window, RevertToNone, CurrentTime); + XSetInputFocus(otk::OBDisplay::display, _window, + RevertToNone, CurrentTime); if (_focus_notify) { XEvent ce;