diff --git a/include/tui.h b/include/tui.h index b1b3416..9e671e6 100644 --- a/include/tui.h +++ b/include/tui.h @@ -51,6 +51,8 @@ public: static enum UserInput readUserInput(); + static void terminateTUI(); + private: static string sCpuUsage; static string sRamUsage; @@ -80,4 +82,4 @@ private: string formatSpeed(time_t u32ShredTimeDelta, unsigned long ulWrittenBytes); static void vTruncateText(string *psText, uint16_t u16MaxLenght); }; -#endif // TUI_H_ \ No newline at end of file +#endif // TUI_H_ diff --git a/src/reHDD.cpp b/src/reHDD.cpp index e4f15ce..9e33ad6 100644 --- a/src/reHDD.cpp +++ b/src/reHDD.cpp @@ -198,8 +198,9 @@ void reHDD::ThreadUserInput() ui->updateTUI(&listDrives, u8SelectedEntry); break; case TUI::UserInput::Terminate: - cout << "Terminate" << endl; + // cout << "Terminate" << endl; stopShredAllDrives(&listDrives); + ui->terminateTUI(); sleep(5); // sleep 5 sec std::exit(1); // Terminates main, doesn't wait for threads break; @@ -724,4 +725,4 @@ bool reHDD::getSystemDrive(string &systemDrive) pclose(outputfileHwinfo); return systemDriveFound; -} \ No newline at end of file +} diff --git a/src/tui.cpp b/src/tui.cpp index 9c822bc..e011eb1 100644 --- a/src/tui.cpp +++ b/src/tui.cpp @@ -63,6 +63,11 @@ void TUI::initTUI() void TUI::updateTUI(list *plistDrives, uint8_t u8SelectedEntry) { + if (isendwin()) + { + return; + } + mxUIrefresh.lock(); uint16_t u16StdscrX, u16StdscrY; getmaxyx(stdscr, u16StdscrY, u16StdscrX); @@ -250,6 +255,11 @@ enum TUI::UserInput TUI::readUserInput() return TUI::UserInput::Undefined; } +void TUI::terminateTUI() +{ + endwin(); +} + void TUI::centerTitle(WINDOW *pwin, const char *title) { int x, maxX, stringSize;