Set log marker on FocusOut event
All of this needs refactoring, probably separating the line editing out from the actual input handling.master
parent
c0ee457ab1
commit
b66c8abf70
23
ui.c
23
ui.c
|
@ -20,6 +20,7 @@
|
|||
#include <err.h>
|
||||
#include <locale.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
@ -39,6 +40,15 @@
|
|||
#define A_ITALIC A_NORMAL
|
||||
#endif
|
||||
|
||||
static void focusEnable(void) {
|
||||
printf("\33[?1004h");
|
||||
fflush(stdout);
|
||||
}
|
||||
static void focusDisable(void) {
|
||||
printf("\33[?1004l");
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
static void colorInit(void) {
|
||||
start_color();
|
||||
use_default_colors();
|
||||
|
@ -98,6 +108,7 @@ void uiInit(void) {
|
|||
cbreak();
|
||||
noecho();
|
||||
|
||||
focusEnable();
|
||||
colorInit();
|
||||
|
||||
ui.topic = newpad(2, TOPIC_COLS);
|
||||
|
@ -123,6 +134,7 @@ static void uiResize(void) {
|
|||
}
|
||||
|
||||
void uiHide(void) {
|
||||
focusDisable();
|
||||
endwin();
|
||||
printf(
|
||||
"This program is AGPLv3 free software!\n"
|
||||
|
@ -427,6 +439,17 @@ static void complete(void) {
|
|||
}
|
||||
|
||||
static void keyChar(wint_t ch) {
|
||||
static bool esc, csi;
|
||||
|
||||
if (csi) {
|
||||
csi = false;
|
||||
if (ch == L'O') logMark();
|
||||
return;
|
||||
}
|
||||
csi = (esc && ch == L'[');
|
||||
esc = (ch == L'\33');
|
||||
if (csi) return;
|
||||
|
||||
switch (ch) {
|
||||
break; case CTRL('L'): uiRedraw();
|
||||
break; case CTRL('B'): reject(); left();
|
||||
|
|
Loading…
Reference in New Issue