about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-19 21:13:02 -0400
committerJune McEnroe <june@causal.agency>2020-04-19 21:13:02 -0400
commit2f5ff45db0d7114524b579e8e0c8bf7e5752b185 (patch)
tree17f106e5fa70fc3a6c48c730ce511b5f59b1eedf
parentAdd M-= to mute windows (diff)
downloadcatgirl-2f5ff45db0d7114524b579e8e0c8bf7e5752b185.tar.gz
catgirl-2f5ff45db0d7114524b579e8e0c8bf7e5752b185.zip
Save last user-selected window to switch back to from M-a
-rw-r--r--ui.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/ui.c b/ui.c
index 4435a52..53e4a19 100644
--- a/ui.c
+++ b/ui.c
@@ -102,6 +102,7 @@ static struct {
 	uint len;
 	uint show;
 	uint swap;
+	uint user;
 } windows;
 
 static uint windowPush(struct Window *window) {
@@ -825,6 +826,7 @@ static void windowShow(uint num) {
 	touchwin(windows.ptrs[num]->pad);
 	windows.swap = windows.show;
 	windows.show = num;
+	windows.user = num;
 	mark(windows.ptrs[windows.swap]);
 	unmark(windows.ptrs[windows.show]);
 	inputUpdate();
@@ -877,10 +879,6 @@ static void toggleIgnore(struct Window *window) {
 }
 
 static void showAuto(void) {
-	static uint swap;
-	if (windows.swap != swap) {
-		swap = windows.show;
-	}
 	uint minHot = UINT_MAX, numHot;
 	uint minWarm = UINT_MAX, numWarm;
 	for (uint num = 0; num < windows.len; ++num) {
@@ -896,14 +894,15 @@ static void showAuto(void) {
 			numWarm = num;
 		}
 	}
+	uint user = windows.user;
 	if (minHot < UINT_MAX) {
 		windowShow(numHot);
-		windows.swap = swap;
+		windows.user = user;
 	} else if (minWarm < UINT_MAX) {
 		windowShow(numWarm);
-		windows.swap = swap;
+		windows.user = user;
 	} else {
-		windowShow(windows.swap);
+		windowShow(user);
 	}
 }
 
href='/pounce/commit/local.c?h=2.1p1&id=510e4e18d1ce46d8a1ae2ed5eff54304598c1529&follow=1'>Rename listen to localJune McEnroe 2019-11-09Remove extended-join and invite-notifyJune McEnroe The remaining caps only generate new commands which can easily be filtered out when sending to clients so will be in the first pass of support. extended-join is probably safe to pass through unaltered, just causing extraneous parameters on JOIN commands, but maybe not. invite-notify reuses the INVITE command where the invited user is not self. 2019-11-09Maintain stateCaps and offer them to clientsJune McEnroe 2019-11-09Parse capabilitiesJune McEnroe The list that I've defined are the ones that I expect to be able to enable probably without any clients breaking... And of course server-time which pounce implements itself. 2019-11-09Avoid the reserved _A names with BIT macroJune McEnroe 2019-11-09Define macro for bit flag enumsJune McEnroe 2019-11-08Check that password is hashedJune McEnroe 2019-11-08Avoid calling getopt_long again after it returns -1June McEnroe On GNU, calling getopt_long again will reset optind back to the first non-option argument, which would cause an infinite loop of reading the same configurtion file forever. 2019-11-08Only change AWAY status for registered clientsJune McEnroe Turns out I did eventually fix this, because I may want to implement "passive clients" for logging or notification stuff, which wouldn't affect AWAY status either. 2019-11-07Just write the example normallyJune McEnroe 2019-11-07Include path in readlinkat errorJune McEnroe 2019-11-07Call clientConsume before clientRecvJune McEnroe This might reduce the frequency of a client getting its own message back because it was behind in the ring when it sent it. 2019-11-06Use -l:filename in Linux.mkJune McEnroe 2019-11-06Fix compat.h for #defined strlcpyJune McEnroe 2019-11-06Allow unsetting LIBRESSL_PREFIXJune McEnroe 2019-11-06Document calico service configurationJune McEnroe 2019-11-06Document SASL EXTERNAL configuration in more detailJune McEnroe 2019-11-06Document pounce service configurationJune McEnroe 2019-11-06Mention Darwin and GNU/Linux in READMEJune McEnroe 2019-11-06Assume LibreSSL from brew on DarwinJune McEnroe 2019-11-06Remove -DNO_EXPLICIT_BZERO from Darwin.mkJune McEnroe 2019-11-06Don't install rc scripts or dirs on LinuxJune McEnroe