>>
>
> if (w->isFocused()) {
> if (screen->isSloppyFocus())
> screen->getBlackbox()->setFocusedWindow((BlackboxWindow *) 0);
> else if (w->isTransient() && w->getTransientFor() &&
> w->getTransientFor()->isVisible())
> w->getTransientFor()->setInputFocus();
> else {
> BlackboxWindow *top = stackingList->first();
> if (! top || ! top->setInputFocus()) {
> screen->getBlackbox()->setFocusedWindow((BlackboxWindow *) 0);
> XSetInputFocus(screen->getBlackbox()->getXDisplay(),
> screen->getToolbar()->getWindowID(),
> RevertToParent, CurrentTime);
> }
> }
> }
>
> That is the core of removeWindow(). Which seems to handle the issue you are
> saying exists. Is this a race condition somewhere? What brought you to the
> conclusion that this is the problem?
Duh, think about code before sending off emails (-:
What if we swap the nested if so that it first checks for transient, then
checks for sloppyfocus?