]> Dogcows Code - chaz/openbox/commitdiff
dont use an invalid iterator in handleKeypress, also, update _last_active is it needs...
authorDana Jansens <danakj@orodu.net>
Mon, 26 Aug 2002 22:05:08 +0000 (22:05 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 26 Aug 2002 22:05:08 +0000 (22:05 +0000)
util/epist/screen.cc

index a67b0a37ec0ed7c62070170c6d26ad135099cd75..c3ea4fb5f0e51ff6ef71105669f9286d30c19d0c 100644 (file)
@@ -384,16 +384,19 @@ void screen::handleKeyrelease(const XEvent &) {
   // the only keyrelease event we care about (for now) is when we do stacked
   // cycling and the modifier is released
   if (_stacked_cycling && _cycling && nothingIsPressed()) {
-    XWindow *w = *_active;
-
     // all modifiers have been released. ungrab the keyboard, move the
     // focused window to the top of the Z-order and raise it
     ungrabModifiers();
 
-    _clients.remove(w);
-    _clients.push_front(w);
-    _active = _clients.begin();
-    w->raise();
+    if (_active != _clients.end()) {
+      XWindow *w = *_active;
+      bool e = _last_active == _active;
+      _clients.remove(w);
+      _clients.push_front(w);
+      _active = _clients.begin();
+      if (e) _last_active = _active;
+      w->raise();
+    }
 
     _cycling = false;
   }
This page took 0.024726 seconds and 4 git commands to generate.