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 <err.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <stdbool.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -39,6 +40,15 @@
|
||||||
#define A_ITALIC A_NORMAL
|
#define A_ITALIC A_NORMAL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void focusEnable(void) {
|
||||||
|
printf("\33[?1004h");
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
static void focusDisable(void) {
|
||||||
|
printf("\33[?1004l");
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
static void colorInit(void) {
|
static void colorInit(void) {
|
||||||
start_color();
|
start_color();
|
||||||
use_default_colors();
|
use_default_colors();
|
||||||
|
@ -98,6 +108,7 @@ void uiInit(void) {
|
||||||
cbreak();
|
cbreak();
|
||||||
noecho();
|
noecho();
|
||||||
|
|
||||||
|
focusEnable();
|
||||||
colorInit();
|
colorInit();
|
||||||
|
|
||||||
ui.topic = newpad(2, TOPIC_COLS);
|
ui.topic = newpad(2, TOPIC_COLS);
|
||||||
|
@ -123,6 +134,7 @@ static void uiResize(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void uiHide(void) {
|
void uiHide(void) {
|
||||||
|
focusDisable();
|
||||||
endwin();
|
endwin();
|
||||||
printf(
|
printf(
|
||||||
"This program is AGPLv3 free software!\n"
|
"This program is AGPLv3 free software!\n"
|
||||||
|
@ -427,6 +439,17 @@ static void complete(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void keyChar(wint_t ch) {
|
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) {
|
switch (ch) {
|
||||||
break; case CTRL('L'): uiRedraw();
|
break; case CTRL('L'): uiRedraw();
|
||||||
break; case CTRL('B'): reject(); left();
|
break; case CTRL('B'): reject(); left();
|
||||||
|
|
Loading…
Reference in New Issue