summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ui.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/ui.c b/ui.c
index d69e706..6a834cd 100644
--- a/ui.c
+++ b/ui.c
@@ -362,16 +362,20 @@ static void statusUpdate(void) {
 	putp(from_status_line);
 }
 
+static void unmark(void) {
+	windows.active->heat = Cold;
+	windows.active->unread = 0;
+	windows.active->mark = false;
+	statusUpdate();
+}
+
 void uiShowID(size_t id) {
-	windows.active->mark = true;
 	struct Window *window = windowFor(id);
-	window->heat = Cold;
-	window->unread = 0;
-	window->mark = false;
+	touchwin(window->pad);
 	windows.other = windows.active;
 	windows.active = window;
-	touchwin(window->pad);
-	statusUpdate();
+	windows.other->mark = true;
+	unmark();
 }
 
 void uiWrite(size_t id, enum Heat heat, const time_t *time, const char *str) {
@@ -403,7 +407,7 @@ void uiFormat(
 static void keyCode(int code) {
 	switch (code) {
 		break; case KEY_RESIZE:; // TODO
-		break; case KeyFocusIn:; // TODO
+		break; case KeyFocusIn:  unmark();
 		break; case KeyFocusOut: windows.active->mark = true;
 		break; case KeyPasteOn:; // TODO
 		break; case KeyPasteOff:; // TODO