]> Dogcows Code - chaz/openbox/blobdiff - util/epist/screen.cc
new slit placement. yea its kinda weak. this can get improved late if people complain...
[chaz/openbox] / util / epist / screen.cc
index 64dccf797f54605e22eb7b9bc5b8fd3bda14b5a8..78f3a9d0805b5c2a21707685075ce8552cc3b0cb 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;
@@ -324,7 +360,7 @@ void screen::updateClientList() {
         break;
     if (it == end) {  // didn't already exist
       if (doAddWindow(rootclients[i])) {
-        cout << "Added window: 0x" << hex << rootclients[i] << dec << endl;
+        //cout << "Added window: 0x" << hex << rootclients[i] << dec << endl;
         _clients.insert(insert_point, new XWindow(_epist, this,
                                                   rootclients[i]));
       }
@@ -338,7 +374,7 @@ void screen::updateClientList() {
       if (**it2 == rootclients[i])
         break;
     if (i == num)  { // no longer exists
-      cout << "Removed window: 0x" << hex << (*it2)->window() << dec << endl;
+      //cout << "Removed window: 0x" << hex << (*it2)->window() << dec << endl;
       delete *it2;
       _clients.erase(it2);
     }
@@ -361,9 +397,9 @@ void screen::updateActiveWindow() {
   }
   _active = it;
 
-  cout << "Active window is now: ";
-  if (_active == _clients.end()) cout << "None\n";
-  else cout << "0x" << hex << (*_active)->window() << dec << endl;
+  //cout << "Active window is now: ";
+  //if (_active == _clients.end()) cout << "None\n";
+  //else cout << "0x" << hex << (*_active)->window() << dec << endl;
 }
 
 
@@ -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.023543 seconds and 4 git commands to generate.