X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=util%2Fepist%2Fscreen.cc;h=1ccf9833d0be96b75d3bb7b01718e6d32ca88489;hb=6595476d81f01cee9001bbc90dda5b37915e5821;hp=64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8;hpb=7d67f8557b3254aeb370a995f417c86606e8a67d;p=chaz%2Fopenbox diff --git a/util/epist/screen.cc b/util/epist/screen.cc index 64dccf79..1ccf9833 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,46 @@ void screen::handleKeypress(const XEvent &e) { window->sendTo(0xffffffff); return; + case Action::moveWindowUp: + window->move(window->x(), window->y() - it->number()); + return; + + case Action::moveWindowDown: + window->move(window->x(), window->y() + it->number()); + return; + + case Action::moveWindowLeft: + window->move(window->x() - it->number(), window->y()); + return; + + case Action::moveWindowRight: + window->move(window->x() + it->number(), window->y()); + return; + + case Action::resizeWindowWidth: + window->resize(window->width() + it->number(), window->height()); + return; + + case Action::resizeWindowHeight: + window->resize(window->width(), window->height() + it->number()); + 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 +429,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())