hack that adds NET_SUPPORTING_WM_CHECK handling, dwm identifies itself as compiz, hence I believe this might workaround the JDK 1.6+ XToolkit bug
							parent
							
								
									cb4951dd54
								
							
						
					
					
						commit
						762b66ae7c
					
				
							
								
								
									
										18
									
								
								dwm.c
								
								
								
								
							
							
						
						
									
										18
									
								
								dwm.c
								
								
								
								
							|  | @ -53,7 +53,7 @@ | ||||||
| enum { BarTop, BarBot, BarOff };			/* bar position */ | enum { BarTop, BarBot, BarOff };			/* bar position */ | ||||||
| enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ | enum { CurNormal, CurResize, CurMove, CurLast };	/* cursor */ | ||||||
| enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ | enum { ColBorder, ColFG, ColBG, ColLast };		/* color */ | ||||||
| enum { NetSupported, NetWMName, NetLast };		/* EWMH atoms */ | enum { NetSupported, NetWMCheck, NetWMName, NetLast };	/* EWMH atoms */ | ||||||
| enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ | ||||||
| 
 | 
 | ||||||
| /* typedefs */ | /* typedefs */ | ||||||
|  | @ -1427,19 +1427,20 @@ void | ||||||
| setup(void) { | setup(void) { | ||||||
| 	int d; | 	int d; | ||||||
| 	unsigned int i, j, mask; | 	unsigned int i, j, mask; | ||||||
|  | 	Atom utf8string; | ||||||
| 	Window w; | 	Window w; | ||||||
| 	XModifierKeymap *modmap; | 	XModifierKeymap *modmap; | ||||||
| 	XSetWindowAttributes wa; | 	XSetWindowAttributes wa; | ||||||
| 
 | 
 | ||||||
| 	/* init atoms */ | 	/* init atoms */ | ||||||
|  | 	utf8string = XInternAtom(dpy, "UTF8_STRING", False); | ||||||
| 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); | ||||||
| 	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); | 	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); | ||||||
| 	wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False); | 	wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False); | ||||||
| 	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); | 	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False); | ||||||
| 	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); | 	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False); | ||||||
|  | 	netatom[NetWMCheck] = XInternAtom(dpy, "_NET_SUPPORTING_WM_CHECK", False); | ||||||
| 	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); | 	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); | ||||||
| 	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, |  | ||||||
| 			PropModeReplace, (unsigned char *) netatom, NetLast); |  | ||||||
| 
 | 
 | ||||||
| 	/* init cursors */ | 	/* init cursors */ | ||||||
| 	cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr); | 	cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr); | ||||||
|  | @ -1514,6 +1515,17 @@ setup(void) { | ||||||
| 
 | 
 | ||||||
| 	/* multihead support */ | 	/* multihead support */ | ||||||
| 	selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask); | 	selscreen = XQueryPointer(dpy, root, &w, &w, &d, &d, &d, &d, &mask); | ||||||
|  | 
 | ||||||
|  | 	/* EWMH properties */ | ||||||
|  | 	XChangeProperty(dpy, barwin, netatom[NetWMCheck], XA_WINDOW, 32, | ||||||
|  | 			PropModeReplace, (unsigned char *) &barwin, 1); | ||||||
|  | 	/* HACK: dwm identifies itself as compiz to workaround the XToolkit bug of Sun JDK */ | ||||||
|  | 	XChangeProperty(dpy, barwin, netatom[NetWMName], utf8string, 8, | ||||||
|  | 			PropModeReplace, (unsigned char *) "compiz", 7); | ||||||
|  | 	XChangeProperty(dpy, root, netatom[NetWMCheck], XA_WINDOW, 32, | ||||||
|  | 			PropModeReplace, (unsigned char *) &barwin, 1); | ||||||
|  | 	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32, | ||||||
|  | 			PropModeReplace, (unsigned char *) netatom, NetLast); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void | void | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue