got rid of compile time xidx, grabbing the mouse pointer instead, falling back to screen 0 if no pointer available
							parent
							
								
									b89a9501c7
								
							
						
					
					
						commit
						4d8a646958
					
				
							
								
								
									
										5
									
								
								config.h
								
								
								
								
							
							
						
						
									
										5
									
								
								config.h
								
								
								
								
							|  | @ -6,9 +6,4 @@ static const char *normbgcolor = "#cccccc"; | |||
| static const char *normfgcolor = "#000000"; | ||||
| static const char *selbgcolor  = "#0066ff"; | ||||
| static const char *selfgcolor  = "#ffffff"; | ||||
| 
 | ||||
| static unsigned int spaceitem  = 30; /* px between menu items */ | ||||
| 
 | ||||
| #ifdef XINERAMA | ||||
| static unsigned int xidx       = 0;  /* Xinerama screen index to use */ | ||||
| #endif | ||||
|  |  | |||
							
								
								
									
										21
									
								
								dmenu.c
								
								
								
								
							
							
						
						
									
										21
									
								
								dmenu.c
								
								
								
								
							|  | @ -17,6 +17,7 @@ | |||
| 
 | ||||
| /* macros */ | ||||
| #define CLEANMASK(mask)         (mask & ~(numlockmask | LockMask)) | ||||
| #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH)) | ||||
| 
 | ||||
| /* enums */ | ||||
| enum { ColFG, ColBG, ColLast }; | ||||
|  | @ -585,7 +586,7 @@ run(void) { | |||
| 
 | ||||
| void | ||||
| setup(Bool topbar) { | ||||
| 	int i, j, x, y; | ||||
| 	int i, j, n, x, y; | ||||
| 	XModifierKeymap *modmap; | ||||
| 	XSetWindowAttributes wa; | ||||
| #if XINERAMA | ||||
|  | @ -618,10 +619,20 @@ setup(Bool topbar) { | |||
| 	mh = dc.font.height + 2; | ||||
| #if XINERAMA | ||||
| 	if(XineramaIsActive(dpy)) { | ||||
| 		info = XineramaQueryScreens(dpy, &i); | ||||
| 		x = info[xidx].x_org; | ||||
| 		y = topbar ? info[xidx].y_org : info[xidx].y_org + info[xidx].height - mh; | ||||
| 		mw = info[xidx].width; | ||||
| 		i = 0; | ||||
| 		info = XineramaQueryScreens(dpy, &n); | ||||
| 		if(n > 1) { | ||||
| 			int di; | ||||
| 			unsigned int dui; | ||||
| 			Window dummy; | ||||
| 			if(XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui)) | ||||
| 				for(i = 0; i < n; i++) | ||||
| 					if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height)) | ||||
| 						break; | ||||
| 		} | ||||
| 		x = info[i].x_org; | ||||
| 		y = topbar ? info[i].y_org : info[i].y_org + info[i].height - mh; | ||||
| 		mw = info[i].width; | ||||
| 		XFree(info); | ||||
| 	} | ||||
| 	else | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue