focus = True;
}
- if (focus && (win->isTransient() || win->getScreen()->doFocusNew()))
+ if (focus && (win->isTransient() || win->getScreen()->doFocusNew()) &&
+ win->isVisible())
win->setInputFocus();
} else {
BScreen *screen = searchScreen(e->xmaprequest.parent);
if (win->isIconic())
win->deiconify(False, True);
- if (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID())
+ if (! win->isStuck() &&
+ (win->getWorkspaceNumber() != screen->getCurrentWorkspaceID()))
screen->changeWorkspaceID(win->getWorkspaceNumber());
if (win->isVisible() && win->setInputFocus()) {
win->getScreen()->getWorkspace(win->getWorkspaceNumber())->