}
case ConfigureRequest: {
- // compress configure requests...
- XEvent realevent;
- unsigned int i = 0;
- while(XCheckTypedWindowEvent(getXDisplay(), e->xconfigurerequest.window,
- ConfigureRequest, &realevent)) {
- i++;
- }
- if ( i > 0 )
- e = &realevent;
-
BlackboxWindow *win = (BlackboxWindow *) 0;
Slit *slit = (Slit *) 0;
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->getScreen()->isSloppyFocus() &&
(! win->isFocused()) && (! no_focus) &&
win->isNormal()) { // don't focus non-normal windows with mouseover
- if (((! sa.leave) || sa.inferior) && win->isVisible()) {
+ if ((! sa.leave || sa.inferior) && win->isVisible()) {
if (win->setInputFocus())
win->installColormap(True); // XXX: shouldnt we honour no install?
}
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())->