Adding steam patch
This commit is contained in:
		| @@ -15,7 +15,7 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t | ||||
|  | ||||
| ### Changelog: | ||||
|  | ||||
| 2020-08-10 - Added cool autostart and insets patches | ||||
| 2020-08-10 - Added cool autostart, insets and steam patches | ||||
|  | ||||
| 2020-08-02 - Added reorganizetags patch | ||||
|  | ||||
| @@ -446,6 +446,9 @@ Refer to [https://dwm.suckless.org/](https://dwm.suckless.org/) for details on t | ||||
|    - [statuspadding](https://dwm.suckless.org/patches/statuspadding/) | ||||
|       - adds configuration options for horizontal and vertical padding in the status bar | ||||
|  | ||||
|    - [steam](https://github.com/bakkeby/patches/wiki/steam) | ||||
|       - a minor patch that works around the issue of floating Steam windows jumping around the screen when they receive focus | ||||
|  | ||||
|    - [sticky](https://dwm.suckless.org/patches/sticky/) | ||||
|       - adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags | ||||
|  | ||||
|   | ||||
							
								
								
									
										21
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								dwm.c
									
									
									
									
									
								
							| @@ -294,6 +294,9 @@ struct Client { | ||||
| 	int isterminal, noswallow; | ||||
| 	pid_t pid; | ||||
| 	#endif // SWALLOW_PATCH | ||||
| 	#if STEAM_PATCH | ||||
| 	int issteam; | ||||
| 	#endif // STEAM_PATCH | ||||
| 	#if STICKY_PATCH | ||||
| 	int issticky; | ||||
| 	#endif // STICKY_PATCH | ||||
| @@ -685,6 +688,11 @@ applyrules(Client *c) | ||||
| 	gettextprop(c->win, wmatom[WMWindowRole], role, sizeof(role)); | ||||
| 	#endif // WINDOWROLERULE_PATCH | ||||
|  | ||||
| 	#if STEAM_PATCH | ||||
| 	if (strstr(class, "Steam") || strstr(class, "steam_app_")) | ||||
| 		c->issteam = 1; | ||||
| 	#endif // STEAM_PATCH | ||||
|  | ||||
| 	for (i = 0; i < LENGTH(rules); i++) { | ||||
| 		r = &rules[i]; | ||||
| 		if ((!r->title || strstr(c->name, r->title)) | ||||
| @@ -1198,6 +1206,8 @@ configurerequest(XEvent *e) | ||||
| 			c->bw = ev->border_width; | ||||
| 		else if (c->isfloating || !selmon->lt[selmon->sellt]->arrange) { | ||||
| 			m = c->mon; | ||||
| 			#if STEAM_PATCH | ||||
| 			if (!c->issteam) { | ||||
| 				if (ev->value_mask & CWX) { | ||||
| 					c->oldx = c->x; | ||||
| 					c->x = m->mx + ev->x; | ||||
| @@ -1206,6 +1216,17 @@ configurerequest(XEvent *e) | ||||
| 					c->oldy = c->y; | ||||
| 					c->y = m->my + ev->y; | ||||
| 				} | ||||
| 			} | ||||
| 			#else | ||||
| 			if (ev->value_mask & CWX) { | ||||
| 				c->oldx = c->x; | ||||
| 				c->x = m->mx + ev->x; | ||||
| 			} | ||||
| 			if (ev->value_mask & CWY) { | ||||
| 				c->oldy = c->y; | ||||
| 				c->y = m->my + ev->y; | ||||
| 			} | ||||
| 			#endif // STEAM_PATCH | ||||
| 			if (ev->value_mask & CWWidth) { | ||||
| 				c->oldw = c->w; | ||||
| 				c->w = ev->width; | ||||
|   | ||||
| @@ -717,6 +717,17 @@ | ||||
|  */ | ||||
| #define STACKER_PATCH 0 | ||||
|  | ||||
| /* Steam, and steam windows (games), trigger a ConfigureNotify request every time the window | ||||
|  * gets focus. More so, the configure event passed along from Steam tends to have the wrong | ||||
|  * x and y co-ordinates which can make the window, if floating, jump around the screen. | ||||
|  * | ||||
|  * This patch works around this age-old issue by ignoring the x and y co-ordinates for | ||||
|  * ConfigureNotify requests relating to Steam windows. | ||||
|  * | ||||
|  * https://github.com/bakkeby/patches/wiki/steam | ||||
|  */ | ||||
| #define STEAM_PATCH 0 | ||||
|  | ||||
| /* Adds toggleable keyboard shortcut to make a client 'sticky', i.e. visible on all tags. | ||||
|  * https://dwm.suckless.org/patches/sticky/ | ||||
|  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user