summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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