]> Dogcows Code - chaz/openbox/blobdiff - util/epist/screen.cc
keep track of window dimentions
[chaz/openbox] / util / epist / screen.cc
index 64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8..1ccf9833d0be96b75d3bb7b01718e6d32ca88489 100644 (file)
@@ -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())
This page took 0.022269 seconds and 4 git commands to generate.