38 lines
1.2 KiB
Plaintext
38 lines
1.2 KiB
Plaintext
--- dwm.c
|
|
+++ dwm.c
|
|
@@ -50,6 +50,7 @@
|
|
#define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \
|
|
* MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy)))
|
|
#define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags]))
|
|
+#define MINIMIZED(C) ((getstate(C->win) == IconicState))
|
|
#define MOUSEMASK (BUTTONMASK|PointerMotionMask)
|
|
#define WIDTH(X) ((X)->w + 2 * (X)->bw)
|
|
#define HEIGHT(X) ((X)->h + 2 * (X)->bw)
|
|
@@ -92,6 +93,7 @@ struct Client {
|
|
int bw, oldbw;
|
|
unsigned int tags;
|
|
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
|
|
+ int isgame;
|
|
Client *next;
|
|
Client *snext;
|
|
Monitor *mon;
|
|
@@ -301,6 +306,7 @@ applyrules(Client *c)
|
|
{
|
|
c->isfloating = r->isfloating;
|
|
c->tags |= r->tags;
|
|
+ c->isgame = r->isgame;
|
|
for (m = mons; m && m->num != r->monitor; m = m->next);
|
|
if (m)
|
|
c->mon = m;
|
|
@@ -1501,6 +1530,10 @@ setfocus(Client *c)
|
|
XA_WINDOW, 32, PropModeReplace,
|
|
(unsigned char *) &(c->win), 1);
|
|
}
|
|
+
|
|
+ if (c->isgame && c->isfullscreen)
|
|
+ unminimize(c);
|
|
+
|
|
sendevent(c, wmatom[WMTakeFocus]);
|
|
}
|
|
|