applied Ivan Delalande's NET_SUPPORTING_WM_CHECK patch for gtk3 compatibility
This commit is contained in:
		
							parent
							
								
									5376947571
								
							
						
					
					
						commit
						e63bf22948
					
				
							
								
								
									
										16
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								dwm.c
									
									
									
									
									
								
							@ -61,7 +61,7 @@
 | 
			
		||||
/* enums */
 | 
			
		||||
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
 | 
			
		||||
enum { SchemeNorm, SchemeSel }; /* color schemes */
 | 
			
		||||
enum { NetSupported, NetWMName, NetWMState,
 | 
			
		||||
enum { NetSupported, NetWMName, NetWMState, NetWMCheck,
 | 
			
		||||
       NetWMFullscreen, NetActiveWindow, NetWMWindowType,
 | 
			
		||||
       NetWMWindowTypeDialog, NetClientList, NetLast }; /* EWMH atoms */
 | 
			
		||||
enum { WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast }; /* default atoms */
 | 
			
		||||
@ -267,7 +267,7 @@ static Scm *scheme;
 | 
			
		||||
static Display *dpy;
 | 
			
		||||
static Drw *drw;
 | 
			
		||||
static Monitor *mons, *selmon;
 | 
			
		||||
static Window root;
 | 
			
		||||
static Window root, wmcheckwin;
 | 
			
		||||
 | 
			
		||||
/* configuration, allows nested code to access above variables */
 | 
			
		||||
#include "config.h"
 | 
			
		||||
@ -485,6 +485,7 @@ cleanup(void)
 | 
			
		||||
		drw_cur_free(drw, cursor[i]);
 | 
			
		||||
	for (i = 0; i < LENGTH(colors); i++)
 | 
			
		||||
		free(scheme[i]);
 | 
			
		||||
	XDestroyWindow(dpy, wmcheckwin);
 | 
			
		||||
	drw_free(drw);
 | 
			
		||||
	XSync(dpy, False);
 | 
			
		||||
	XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
 | 
			
		||||
@ -1551,6 +1552,7 @@ setup(void)
 | 
			
		||||
{
 | 
			
		||||
	int i;
 | 
			
		||||
	XSetWindowAttributes wa;
 | 
			
		||||
	Atom utf8string;
 | 
			
		||||
 | 
			
		||||
	/* clean up any zombies immediately */
 | 
			
		||||
	sigchld(0);
 | 
			
		||||
@ -1567,6 +1569,7 @@ setup(void)
 | 
			
		||||
	bh = drw->fonts->h + 2;
 | 
			
		||||
	updategeom();
 | 
			
		||||
	/* init atoms */
 | 
			
		||||
	utf8string = XInternAtom(dpy, "UTF8_STRING", False);
 | 
			
		||||
	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
 | 
			
		||||
	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False);
 | 
			
		||||
	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);
 | 
			
		||||
@ -1575,6 +1578,7 @@ setup(void)
 | 
			
		||||
	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);
 | 
			
		||||
	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
 | 
			
		||||
	netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
 | 
			
		||||
	netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False);
 | 
			
		||||
	netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
 | 
			
		||||
	netatom[NetWMWindowType] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False);
 | 
			
		||||
	netatom[NetWMWindowTypeDialog] = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False);
 | 
			
		||||
@ -1590,6 +1594,14 @@ setup(void)
 | 
			
		||||
	/* init bars */
 | 
			
		||||
	updatebars();
 | 
			
		||||
	updatestatus();
 | 
			
		||||
	/* supporting window for NetWMCheck */
 | 
			
		||||
	wmcheckwin = XCreateSimpleWindow(dpy, root, 0, 0, 1, 1, 0, 0, 0);
 | 
			
		||||
	XChangeProperty(dpy, wmcheckwin, netatom[NetWMCheck], XA_WINDOW, 32,
 | 
			
		||||
		PropModeReplace, (unsigned char *) &wmcheckwin, 1);
 | 
			
		||||
	XChangeProperty(dpy, wmcheckwin, netatom[NetWMName], utf8string, 8,
 | 
			
		||||
		PropModeReplace, (unsigned char *) "dwm", 4);
 | 
			
		||||
	XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32,
 | 
			
		||||
		PropModeReplace, (unsigned char *) &wmcheckwin, 1);
 | 
			
		||||
	/* EWMH support per view */
 | 
			
		||||
	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
 | 
			
		||||
			PropModeReplace, (unsigned char *) netatom, NetLast);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user