-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:
Wilfried SUGNIAUX 2020-12-03 22:56:37 +01:00 committed by Przemek Grondek
parent d2b23e176d
commit 9d11cd7d18
2 changed files with 15 additions and 13 deletions

View File

@ -47,16 +47,16 @@ static const Rule rules[] = {
* WM_CLASS(STRING) = instance, class
* 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 },
{"st", NULL, NULL, 0, 0, 1, 1, -1},
{"Xephyr", NULL, NULL, 0, 1, 0, 0, -1},
{"Xnest", NULL, NULL, 0, 1, 0, 0, -1},
{"streamdeck", NULL, NULL, 0, 0, 0, 1, -1},
{"jetbrains-toolbox", NULL, NULL, 0, 1, 0, 1, -1},
{"jetbrains-idea", NULL, NULL, 0, 0, 0, 1, -1},
{"jetbrains-idea", NULL, "Welcome to IntelliJ IDEA", 0, 1, 0, 1, -1},
{"jetbrains-studio", NULL, NULL, 0, 1, 0, 0, 0, -1 },
{"st", NULL, NULL, 0, 0, 1, 1, 0, -1},
{"Xephyr", NULL, NULL, 0, 1, 0, 0, 0, -1},
{"Xnest", NULL, NULL, 0, 1, 0, 0, 0, -1},
{"streamdeck", NULL, NULL, 0, 0, 0, 1, 0, -1},
{"jetbrains-toolbox", NULL, NULL, 0, 1, 0, 1, 0, -1},
{"jetbrains-idea", NULL, NULL, 0, 0, 0, 1, 1, -1},
{"jetbrains-idea", NULL, "Welcome to IntelliJ IDEA", 0, 1, 0, 1, 0, -1},
};
/* layout(s) */

6
dwm.c
View File

@ -113,7 +113,7 @@ struct Client {
int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int bw, oldbw;
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;
Client *next;
Client *snext;
@ -164,6 +164,7 @@ typedef struct {
int isfloating;
int isterminal;
int noswallow;
int ignoretransient;
int monitor;
} Rule;
@ -354,6 +355,7 @@ applyrules(Client *c)
{
c->isterminal = r->isterminal;
c->isfloating = r->isfloating;
c->ignoretransient = r->ignoretransient;
c->tags |= r->tags;
for (m = mons; m && m->num != r->monitor; m = m->next);
if (m)
@ -1453,7 +1455,7 @@ propertynotify(XEvent *e)
switch(ev->atom) {
default: break;
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))
arrange(c->mon);
break;