DWM 6.2:
-Making a Workaround patch for WebStorm: do not care about property notification saying that a second window is transient to the first webstorm window (cherry picked from commit f47c3c83257eed490c6aaf876fbb67b2ddb8b62c)
This commit is contained in:
parent
d2b23e176d
commit
9d11cd7d18
18
config.h
18
config.h
@ -47,16 +47,16 @@ static const Rule rules[] = {
|
|||||||
* WM_CLASS(STRING) = instance, class
|
* WM_CLASS(STRING) = instance, class
|
||||||
* WM_NAME(STRING) = title
|
* WM_NAME(STRING) = title
|
||||||
*/
|
*/
|
||||||
/* class instance title tags mask isfloating isterminal noswallow monitor */
|
/* class instance title tags mask isfloating isterminal noswallow ignoretransient monitor */
|
||||||
|
|
||||||
{"jetbrains-studio", NULL, NULL, 0, 1, 0, 0, -1 },
|
{"jetbrains-studio", NULL, NULL, 0, 1, 0, 0, 0, -1 },
|
||||||
{"st", NULL, NULL, 0, 0, 1, 1, -1},
|
{"st", NULL, NULL, 0, 0, 1, 1, 0, -1},
|
||||||
{"Xephyr", NULL, NULL, 0, 1, 0, 0, -1},
|
{"Xephyr", NULL, NULL, 0, 1, 0, 0, 0, -1},
|
||||||
{"Xnest", NULL, NULL, 0, 1, 0, 0, -1},
|
{"Xnest", NULL, NULL, 0, 1, 0, 0, 0, -1},
|
||||||
{"streamdeck", NULL, NULL, 0, 0, 0, 1, -1},
|
{"streamdeck", NULL, NULL, 0, 0, 0, 1, 0, -1},
|
||||||
{"jetbrains-toolbox", NULL, NULL, 0, 1, 0, 1, -1},
|
{"jetbrains-toolbox", NULL, NULL, 0, 1, 0, 1, 0, -1},
|
||||||
{"jetbrains-idea", NULL, NULL, 0, 0, 0, 1, -1},
|
{"jetbrains-idea", NULL, NULL, 0, 0, 0, 1, 1, -1},
|
||||||
{"jetbrains-idea", NULL, "Welcome to IntelliJ IDEA", 0, 1, 0, 1, -1},
|
{"jetbrains-idea", NULL, "Welcome to IntelliJ IDEA", 0, 1, 0, 1, 0, -1},
|
||||||
};
|
};
|
||||||
|
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
|
10
dwm.c
10
dwm.c
@ -113,7 +113,7 @@ struct Client {
|
|||||||
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
|
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
|
||||||
int bw, oldbw;
|
int bw, oldbw;
|
||||||
unsigned int tags;
|
unsigned int tags;
|
||||||
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow;
|
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow, ignoretransient;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
Client *next;
|
Client *next;
|
||||||
Client *snext;
|
Client *snext;
|
||||||
@ -164,6 +164,7 @@ typedef struct {
|
|||||||
int isfloating;
|
int isfloating;
|
||||||
int isterminal;
|
int isterminal;
|
||||||
int noswallow;
|
int noswallow;
|
||||||
|
int ignoretransient;
|
||||||
int monitor;
|
int monitor;
|
||||||
} Rule;
|
} Rule;
|
||||||
|
|
||||||
@ -354,6 +355,7 @@ applyrules(Client *c)
|
|||||||
{
|
{
|
||||||
c->isterminal = r->isterminal;
|
c->isterminal = r->isterminal;
|
||||||
c->isfloating = r->isfloating;
|
c->isfloating = r->isfloating;
|
||||||
|
c->ignoretransient = r->ignoretransient;
|
||||||
c->tags |= r->tags;
|
c->tags |= r->tags;
|
||||||
for (m = mons; m && m->num != r->monitor; m = m->next);
|
for (m = mons; m && m->num != r->monitor; m = m->next);
|
||||||
if (m)
|
if (m)
|
||||||
@ -1453,9 +1455,9 @@ propertynotify(XEvent *e)
|
|||||||
switch(ev->atom) {
|
switch(ev->atom) {
|
||||||
default: break;
|
default: break;
|
||||||
case XA_WM_TRANSIENT_FOR:
|
case XA_WM_TRANSIENT_FOR:
|
||||||
if (!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
|
if (!c->ignoretransient && !c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
|
||||||
(c->isfloating = (wintoclient(trans)) != NULL))
|
(c->isfloating = (wintoclient(trans)) != NULL))
|
||||||
arrange(c->mon);
|
arrange(c->mon);
|
||||||
break;
|
break;
|
||||||
case XA_WM_NORMAL_HINTS:
|
case XA_WM_NORMAL_HINTS:
|
||||||
updatesizehints(c);
|
updatesizehints(c);
|
||||||
|
Loading…
Reference in New Issue
Block a user