dont use an invalid iterator in handleKeypress, also, update _last_active is it needs to be

This commit is contained in:
Dana Jansens 2002-08-26 22:05:08 +00:00
parent b81dbf9af6
commit 48a450083d

View file

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