applied andres' multi-slock fix, thanks for spotting this issue
This commit is contained in:
		
							parent
							
								
									4b4fcca1bc
								
							
						
					
					
						commit
						d276b9b0e0
					
				
							
								
								
									
										17
									
								
								slock.c
								
								
								
								
							
							
						
						
									
										17
									
								
								slock.c
								
								
								
								
							| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* See LICENSE file for license details. */
 | 
					/* See LICENSE file for license details. */
 | 
				
			||||||
#define _XOPEN_SOURCE 500
 | 
					#define _XOPEN_SOURCE 500
 | 
				
			||||||
#if HAVE_SHADOW_H
 | 
					#if HAVE_SHADOW_H
 | 
				
			||||||
| 
						 | 
					@ -211,9 +212,9 @@ lockscreen(Display *dpy, int screen) {
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			usleep(1000);
 | 
								usleep(1000);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		running = (len > 0);
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						running &= (len > 0);
 | 
				
			||||||
	if(!running) {
 | 
						if(!running) {
 | 
				
			||||||
		unlockscreen(dpy, lock);
 | 
							unlockscreen(dpy, lock);
 | 
				
			||||||
		lock = NULL;
 | 
							lock = NULL;
 | 
				
			||||||
| 
						 | 
					@ -257,10 +258,20 @@ main(int argc, char **argv) {
 | 
				
			||||||
	locks = malloc(sizeof(Lock *) * nscreens);
 | 
						locks = malloc(sizeof(Lock *) * nscreens);
 | 
				
			||||||
	if(locks == NULL)
 | 
						if(locks == NULL)
 | 
				
			||||||
		die("slock: malloc: %s", strerror(errno));
 | 
							die("slock: malloc: %s", strerror(errno));
 | 
				
			||||||
	for(screen = 0; screen < nscreens; screen++)
 | 
						int nlocks = 0;
 | 
				
			||||||
		locks[screen] = lockscreen(dpy, screen);
 | 
						for(screen = 0; screen < nscreens; screen++) {
 | 
				
			||||||
 | 
							if ( (locks[screen] = lockscreen(dpy, screen)) != NULL)
 | 
				
			||||||
 | 
								nlocks++;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	XSync(dpy, False);
 | 
						XSync(dpy, False);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Did we actually manage to lock something? */
 | 
				
			||||||
 | 
						if (nlocks == 0) { // nothing to protect
 | 
				
			||||||
 | 
							free(locks);
 | 
				
			||||||
 | 
							XCloseDisplay(dpy);
 | 
				
			||||||
 | 
							return 1;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Everything is now blank. Now wait for the correct password. */
 | 
						/* Everything is now blank. Now wait for the correct password. */
 | 
				
			||||||
#ifdef HAVE_BSD_AUTH
 | 
					#ifdef HAVE_BSD_AUTH
 | 
				
			||||||
	readpw(dpy);
 | 
						readpw(dpy);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue