X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=util%2Fepist%2Fscreen.cc;h=19a57c71dd1658d847b668a43c629eda400a3ee1;hb=32ac5d9b885bec69be2785ad544ba6c473418ce8;hp=64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8;hpb=7d67f8557b3254aeb370a995f417c86606e8a67d;p=chaz%2Fopenbox diff --git a/util/epist/screen.cc b/util/epist/screen.cc index 64dccf79..19a57c71 100644 --- a/util/epist/screen.cc +++ b/util/epist/screen.cc @@ -186,19 +186,19 @@ void screen::handleKeypress(const XEvent &e) { return; case Action::nextWindowOfClass: - cycleWindow(true, false, true); + cycleWindow(true, false, true, it->string()); return; case Action::prevWindowOfClass: - cycleWindow(false, false, true); + cycleWindow(false, false, true, it->string()); return; case Action::nextWindowOfClassOnAllWorkspaces: - cycleWindow(true, true, true); + cycleWindow(true, true, true, it->string()); return; case Action::prevWindowOfClassOnAllWorkspaces: - cycleWindow(false, true, true); + cycleWindow(false, true, true, it->string()); return; case Action::changeWorkspace: @@ -245,10 +245,38 @@ void screen::handleKeypress(const XEvent &e) { window->sendTo(0xffffffff); return; + case Action::moveWindowUp: + window->move(0, -it->number()); + return; + + case Action::moveWindowDown: + window->move(0, it->number()); + return; + + case Action::moveWindowLeft: + window->move(-it->number(), 0); + return; + + case Action::moveWindowRight: + window->move(it->number(), 0); + return; + case Action::toggleshade: window->shade(! window->shaded()); return; + case Action::toggleMaximizeHorizontal: + window->toggleMaximize(XWindow::Max_Horz); + return; + + case Action::toggleMaximizeVertical: + window->toggleMaximize(XWindow::Max_Vert); + return; + + case Action::toggleMaximizeFull: + window->toggleMaximize(XWindow::Max_Full); + return; + default: assert(false); // unhandled action type! break; @@ -393,15 +421,15 @@ void screen::execCommand(const std::string &cmd) const { void screen::cycleWindow(const bool forward, const bool alldesktops, - const bool sameclass) const { + const bool sameclass, const string &cn) const { assert(_managed); if (_clients.empty()) return; WindowList::const_iterator target = _active; - string classname; - if (sameclass && target != _clients.end()) + string classname = cn; + if (sameclass && classname.empty() && target != _clients.end()) classname = (*target)->appClass(); if (target == _clients.end())