detect active monitor using input focus
This commit is contained in:
		
							parent
							
								
									8ccc02c89d
								
							
						
					
					
						commit
						b63b137a27
					
				@ -473,7 +473,7 @@ void
 | 
			
		||||
setup(void) {
 | 
			
		||||
	int x, y, screen = DefaultScreen(dc->dpy);
 | 
			
		||||
	Window root = RootWindow(dc->dpy, screen);
 | 
			
		||||
	XSetWindowAttributes wa;
 | 
			
		||||
	XSetWindowAttributes swa;
 | 
			
		||||
#ifdef XINERAMA
 | 
			
		||||
	int n;
 | 
			
		||||
	XineramaScreenInfo *info;
 | 
			
		||||
@ -494,8 +494,13 @@ setup(void) {
 | 
			
		||||
	if((info = XineramaQueryScreens(dc->dpy, &n))) {
 | 
			
		||||
		int i, di;
 | 
			
		||||
		unsigned int du;
 | 
			
		||||
		Window dw;
 | 
			
		||||
		Window w, dw;
 | 
			
		||||
		XWindowAttributes wa;
 | 
			
		||||
 | 
			
		||||
		XGetInputFocus(dc->dpy, &w, &di);
 | 
			
		||||
		if(w != root && XGetWindowAttributes(dc->dpy, w, &wa))
 | 
			
		||||
			XTranslateCoordinates(dc->dpy, root, root, wa.x, wa.y, &x, &y, &dw);
 | 
			
		||||
		else
 | 
			
		||||
			XQueryPointer(dc->dpy, root, &dw, &dw, &x, &y, &di, &di, &du);
 | 
			
		||||
		for(i = 0; i < n-1; i++)
 | 
			
		||||
			if(INRECT(x, y, info[i].x_org, info[i].y_org, info[i].width, info[i].height))
 | 
			
		||||
@ -517,13 +522,13 @@ setup(void) {
 | 
			
		||||
	match(False);
 | 
			
		||||
 | 
			
		||||
	/* menu window */
 | 
			
		||||
	wa.override_redirect = True;
 | 
			
		||||
	wa.background_pixmap = ParentRelative;
 | 
			
		||||
	wa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
 | 
			
		||||
	swa.override_redirect = True;
 | 
			
		||||
	swa.background_pixmap = ParentRelative;
 | 
			
		||||
	swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
 | 
			
		||||
	win = XCreateWindow(dc->dpy, root, x, y, mw, mh, 0,
 | 
			
		||||
	                    DefaultDepth(dc->dpy, screen), CopyFromParent,
 | 
			
		||||
	                    DefaultVisual(dc->dpy, screen),
 | 
			
		||||
	                    CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa);
 | 
			
		||||
	                    CWOverrideRedirect | CWBackPixmap | CWEventMask, &swa);
 | 
			
		||||
 | 
			
		||||
	XMapRaised(dc->dpy, win);
 | 
			
		||||
	resizedc(dc, mw, mh);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user