Defer keypad() invocation
This commit is contained in:
parent
45f79abf9c
commit
6e879c9db9
11
sdn.cpp
11
sdn.cpp
|
@ -814,8 +814,7 @@ int main (int argc, char *argv[]) {
|
|||
}
|
||||
|
||||
locale::global (locale (""));
|
||||
if (!initscr () || cbreak () == ERR || noecho () == ERR || nonl () == ERR
|
||||
|| halfdelay (1) == ERR || keypad (stdscr, TRUE) == ERR) {
|
||||
if (!initscr () || cbreak () == ERR || noecho () == ERR || nonl () == ERR) {
|
||||
cerr << "cannot initialize screen" << endl;
|
||||
return 1;
|
||||
}
|
||||
|
@ -825,6 +824,14 @@ int main (int argc, char *argv[]) {
|
|||
g.start_dir = g.cwd;
|
||||
update ();
|
||||
|
||||
// Invoking keypad() earlier would make ncurses flush its output buffer,
|
||||
// which would worsen start-up flickering
|
||||
if (halfdelay (1) == ERR || keypad (stdscr, TRUE) == ERR) {
|
||||
endwin ();
|
||||
cerr << "cannot initialize screen" << endl;
|
||||
return 1;
|
||||
}
|
||||
|
||||
wint_t c;
|
||||
while (1) {
|
||||
inotify_check ();
|
||||
|
|
Loading…
Reference in New Issue