dwm-steam-6.2.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-steam-6.2.diff (1891B) | |
--- | |
1 From 2550931c66e10e667ce56a6761cbadd12b331c52 Mon Sep 17 00:00:00 2001 | |
2 From: bakkeby <[email protected]> | |
3 Date: Mon, 10 Aug 2020 16:45:00 +0200 | |
4 Subject: [PATCH] Steam patch | |
5 | |
6 Steam, and steam windows (games), trigger a ConfigureNotify request ever… | |
7 gets focus. More so, the configure event passed along from Steam tends t… | |
8 x and y coordinates which can make the window, if floating, jump around … | |
9 | |
10 This patch works around this age-old issue by ignoring the x and y co-or… | |
11 ConfigureNotify requests relating to Steam windows. | |
12 --- | |
13 dwm.c | 20 +++++++++++++------- | |
14 1 file changed, 13 insertions(+), 7 deletions(-) | |
15 | |
16 diff --git a/dwm.c b/dwm.c | |
17 index 4465af1..598d36d 100644 | |
18 --- a/dwm.c | |
19 +++ b/dwm.c | |
20 @@ -93,6 +93,7 @@ struct Client { | |
21 int bw, oldbw; | |
22 unsigned int tags; | |
23 int isfixed, isfloating, isurgent, neverfocus, oldstate, isfull… | |
24 + int issteam; | |
25 Client *next; | |
26 Client *snext; | |
27 Monitor *mon; | |
28 @@ -291,6 +292,9 @@ applyrules(Client *c) | |
29 class = ch.res_class ? ch.res_class : broken; | |
30 instance = ch.res_name ? ch.res_name : broken; | |
31 | |
32 + if (strstr(class, "Steam") || strstr(class, "steam_app_")) | |
33 + c->issteam = 1; | |
34 + | |
35 for (i = 0; i < LENGTH(rules); i++) { | |
36 r = &rules[i]; | |
37 if ((!r->title || strstr(c->name, r->title)) | |
38 @@ -588,13 +592,15 @@ configurerequest(XEvent *e) | |
39 c->bw = ev->border_width; | |
40 else if (c->isfloating || !selmon->lt[selmon->sellt]->a… | |
41 m = c->mon; | |
42 - if (ev->value_mask & CWX) { | |
43 - c->oldx = c->x; | |
44 - c->x = m->mx + ev->x; | |
45 - } | |
46 - if (ev->value_mask & CWY) { | |
47 - c->oldy = c->y; | |
48 - c->y = m->my + ev->y; | |
49 + if (!c->issteam) { | |
50 + if (ev->value_mask & CWX) { | |
51 + c->oldx = c->x; | |
52 + c->x = m->mx + ev->x; | |
53 + } | |
54 + if (ev->value_mask & CWY) { | |
55 + c->oldy = c->y; | |
56 + c->y = m->my + ev->y; | |
57 + } | |
58 } | |
59 if (ev->value_mask & CWWidth) { | |
60 c->oldw = c->w; | |
61 -- | |
62 2.19.1 | |
63 |