cycling fix: when no client is active, warp pointer to last active;

from Walter Alejandro Iglesias.
This commit is contained in:
okan
2022-02-27 14:59:55 +00:00
parent 9e2fadeb61
commit ff9ee77b24

View File

@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* $OpenBSD: kbfunc.c,v 1.172 2022/02/26 15:19:18 okan Exp $
* $OpenBSD: kbfunc.c,v 1.173 2022/02/27 14:59:55 okan Exp $
*/
#include <sys/types.h>
@@ -450,7 +450,16 @@ kbfunc_client_cycle(void *ctx, struct cargs *cargs)
newcc->ptr.x = newcc->geom.w / 2;
newcc->ptr.y = newcc->geom.h / 2;
}
client_ptr_warp(newcc);
/* When no client is active, warp pointer to last active. */
if (oldcc->flags & (CLIENT_ACTIVE))
client_ptr_warp(newcc);
else if (oldcc->flags & (CLIENT_SKIP_CYCLE))
client_ptr_warp(newcc);
else {
client_raise(oldcc);
client_ptr_warp(oldcc);
}
}
void