~kris/suckless

tabbed

030eda81cc622ad0c3efe2ab1f1a657ee82e45cb — Christoph Lohmann 12 years ago 4ed0a2d
Simplifying the lastsel handling a bit.

Some checks and comments were removed to simplify the function.
1 files changed, 9 insertions(+), 18 deletions(-)

M tabbed.c
M tabbed.c => tabbed.c +9 -18
@@ 1059,9 1059,10 @@ unmanage(int c) {
		return;
	}

	if(!nclients) {
	if(!nclients)
		return;
	} else if(c == 0) {

	if(c == 0) {
		/* First client. */
		nclients--;
		free(clients[0]);


@@ 1080,35 1081,25 @@ unmanage(int c) {
	}

	if(nclients <= 0) {
		sel = -1;
		lastsel = -1;
		lastsel = sel = -1;

		if (closelastclient) {
		if(closelastclient) {
			running = False;
		} else if (fillagain && running) {
		} else if(fillagain && running) {
			spawn(NULL);
		}
	} else {
		if(c && lastsel >= nclients) {
		if(lastsel >= nclients) {
			lastsel = nclients - 1;
		} else if(lastsel > c) {
			lastsel--;
		}

		if(c == sel) {
			/* Note that focus() will never set lastsel == sel,
			 * so if here lastsel == sel, it was decreased by above if() clause
			 * and was actually (sel + 1) before.
			 */
			if(lastsel > 0) {
				focus(lastsel);
			} else {
				focus(0);
				lastsel = 1;
			}
			focus(lastsel);
		} else {
			if(sel > c)
				sel -= 1;
				sel--;
			if(sel >= nclients)
				sel = nclients - 1;