Я пытаюсь перейти от моего пользовательского интерфейса ncurses к редактору с помощью вызова system
и затем снова вернуться. С помощью нескольких дружественных программистов здесь я узнал, как использовать def_prog_mode
и refresh
для восстановления состояния моего пользовательского интерфейса терминала после того, как пользователь вернется из редактора.
Итак, мой код выглядит примерно так:
// save state and exit ui
def_prog_mode();
endwin();
// system call...
system(...)
// restore ui
reset_prog_mode();
refresh();
Это довольно неплохо восстанавливает мой пользовательский интерфейс, но довольно часто после этого моя программа больше не принимает или не реагирует на ввод с клавиатуры. Я не уверен, при каких условиях это происходит, но это происходит в большинстве случаев.
Это похоже на проблему здесь , но описанное исправление (повторный вызов keypad
), похоже, не работает.