- w->getTransientFor()->isVisible()) {
- w->getTransientFor()->setInputFocus();
- } else if (screen.sloppyFocus()) {
- screen.getOpenbox().setFocusedWindow((OpenboxWindow *) 0);
- } else {
- OpenboxWindow *top = stackingList->first();
- if (! top || ! top->setInputFocus()) {
- screen.getOpenbox().setFocusedWindow((OpenboxWindow *) 0);
- XSetInputFocus(screen.getOpenbox().getXDisplay(),
- screen.getToolbar()->getWindowID(),
- RevertToParent, CurrentTime);
- }
- }
+ w->getTransientFor()->isVisible())
+ fw = w->getTransientFor();
+ else if (screen.sloppyFocus()) // sloppy focus
+ fw = (OpenboxWindow *) 0;
+ else if (!_zorder.empty()) // click focus
+ fw = _zorder.front();
+
+ if (!(fw != (OpenboxWindow *) 0 && fw->setInputFocus()))
+ screen.getOpenbox().focusWindow(0);