>> 
> 
> 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?

Reply via email to