]> Dogcows Code - chaz/openbox/blobdiff - util/epist/screen.cc
add action and design for resizing a window
[chaz/openbox] / util / epist / screen.cc
index 64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8..19a57c71dd1658d847b668a43c629eda400a3ee1 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,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())
This page took 0.021211 seconds and 4 git commands to generate.