all repos — openbox @ 48a450083db59085921c79c2bb68dedd0b95821a

openbox fork - make it a bit more like ryudo

dont use an invalid iterator in handleKeypress, also, update _last_active is it needs to be
Dana Jansens danakj@orodu.net
commit

48a450083db59085921c79c2bb68dedd0b95821a

parent

b81dbf9af620472ac5661a6a778f92a646184ce8

1 files changed, 9 insertions(+), 6 deletions(-)

jump to
M util/epist/screen.ccutil/epist/screen.cc

@@ -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; }