Don't focus dock or splash windows except via EWMH ACTIVE_WINDOW requests.

This commit is contained in:
Kris Maglione 2010-05-27 14:14:37 -04:00
parent f70a4130bd
commit 8c5e6b9eb9
6 changed files with 10 additions and 6 deletions

View File

@ -475,7 +475,9 @@ focus(Client *c, bool user) {
View *v; View *v;
Frame *f; Frame *f;
USED(user); if(!user && c->nofocus)
return;
f = c->sel; f = c->sel;
if(!f) if(!f)
return; return;

View File

@ -161,6 +161,7 @@ struct Client {
bool urgent; bool urgent;
bool borderless; bool borderless;
bool titleless; bool titleless;
bool nofocus;
bool noinput; bool noinput;
}; };

View File

@ -242,9 +242,11 @@ ewmh_getwintype(Client *c) {
c->w.ewmh.type = mask; c->w.ewmh.type = mask;
if(mask & (TypeDock|TypeMenu|TypeToolbar)) { if(mask & (TypeDock|TypeMenu|TypeToolbar)) {
c->borderless = 1; c->borderless = true;
c->titleless = 1; c->titleless = true;
} }
if(mask & (TypeSplash|TypeDock))
c->nofocus = true;
} }
static void static void

View File

@ -90,7 +90,7 @@ void client_seturgent(Client*, int, int);
void client_setviews(Client*, char**); void client_setviews(Client*, char**);
void client_unmap(Client*, int state); void client_unmap(Client*, int state);
Frame* client_viewframe(Client *c, View *v); Frame* client_viewframe(Client *c, View *v);
void focus(Client*, bool restack); void focus(Client*, bool user);
void fullscreen(Client*, int, long); void fullscreen(Client*, int, long);
Client* group_leader(Group*); Client* group_leader(Group*);
int map_frame(Client*); int map_frame(Client*);

View File

@ -221,7 +221,6 @@ enter_event(Window *w, void *aux, XCrossingEvent *e) {
ignoreenter == e->serial ? " (ignored)" : ""); ignoreenter == e->serial ? " (ignored)" : "");
if(e->detail != NotifyInferior) if(e->detail != NotifyInferior)
if(e->serial != ignoreenter && (f->area->floating || !f->collapsed)) if(e->serial != ignoreenter && (f->area->floating || !f->collapsed))
if(!(c->w.ewmh.type & TypeSplash))
focus(f->client, false); focus(f->client, false);
} }
mouse_checkresize(f, Pt(e->x, e->y), false); mouse_checkresize(f, Pt(e->x, e->y), false);

View File

@ -23,6 +23,6 @@ CFLAGS += \
-Wreturn-type \ -Wreturn-type \
-Wstrict-prototypes \ -Wstrict-prototypes \
-Wtrigraphs -Wtrigraphs
MKDEP = cpp -M MKDEP = cpp -MM
SOCFLAGS += -fPIC SOCFLAGS += -fPIC