diff options
Diffstat (limited to 'sdn.cpp')
-rw-r--r-- | sdn.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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 (); |