diff options
| author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-08-13 19:57:20 -0500 | 
|---|---|---|
| committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-08-25 00:20:21 -0500 | 
| commit | 406aebcbd2d9526834ad4131ac8b454a9f27c0d9 (patch) | |
| tree | 57ef4c9a1b7b215cd1f38ac8ade62a8b9be1d252 /dwl.c | |
| parent | dfcd142ce4079d36f5a0a73f9104ba87c365ef12 (diff) | |
prevent an infinite loop if try to use focusmon() with all monitors disabled
Diffstat (limited to 'dwl.c')
| -rw-r--r-- | dwl.c | 8 | 
1 files changed, 5 insertions, 3 deletions
| @@ -1192,9 +1192,11 @@ focusclient(Client *c, int lift)  void  focusmon(const Arg *arg)  { -	do -		selmon = dirtomon(arg->i); -	while (!selmon->wlr_output->enabled); +	int i = 0, nmons = wl_list_length(&mons); +	if (nmons) +		do /* don't switch to disabled mons */ +			selmon = dirtomon(arg->i); +		while (!selmon->wlr_output->enabled && i++ < nmons);  	focusclient(focustop(selmon), 1);  } | 
