From 27a4d8a70bf3aff7153a891e76d59bfb54de7720 Mon Sep 17 00:00:00 2001 From: skyjake Date: Fri, 25 Jan 2013 11:01:18 +0200 Subject: [PATCH] Shell|Unix: Cleaned up SIGWINCH handling, prevent Ctrl-C signal --- .../tools/shell/shell-text/src/cursesapp.cpp | 21 +++++++------------ .../tools/shell/shell-text/src/cursesapp.h | 2 -- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/doomsday/tools/shell/shell-text/src/cursesapp.cpp b/doomsday/tools/shell/shell-text/src/cursesapp.cpp index dcae3c5cd0..ee4780da96 100644 --- a/doomsday/tools/shell/shell-text/src/cursesapp.cpp +++ b/doomsday/tools/shell/shell-text/src/cursesapp.cpp @@ -34,8 +34,7 @@ static void windowResized(int) { - Q_ASSERT(qApp); - static_cast(qApp)->windowWasResized(); + ungetch(KEY_RESIZE); } /** @@ -126,6 +125,7 @@ struct CursesApp::Instance cbreak(); noecho(); nonl(); + raw(); // Ctrl-C shouldn't cause a signal nodelay(rootWin, TRUE); keypad(rootWin, TRUE); } @@ -180,12 +180,17 @@ struct CursesApp::Instance self.quit(); // development only return; + case KEY_ENTER: + case 0xd: // Enter + code = Qt::Key_Enter; + break; + case 0x7f: // Delete code = Qt::Key_Backspace; break; - case 0x4: // Ctrl-D case KEY_DC: + case 0x4: // Ctrl-D code = Qt::Key_Delete; break; @@ -288,11 +293,6 @@ struct CursesApp::Instance } } - void windowWasResized() // called from signal handler - { - ungetch(KEY_RESIZE); - } - void update() { rootWidget->draw(); @@ -314,11 +314,6 @@ TextRootWidget &CursesApp::rootWidget() return *d->rootWidget; } -void CursesApp::windowWasResized() // called from signal handler -{ - d->windowWasResized(); -} - void CursesApp::refresh() { d->refresh(); diff --git a/doomsday/tools/shell/shell-text/src/cursesapp.h b/doomsday/tools/shell/shell-text/src/cursesapp.h index 9bb93a696e..a6acdf4814 100644 --- a/doomsday/tools/shell/shell-text/src/cursesapp.h +++ b/doomsday/tools/shell/shell-text/src/cursesapp.h @@ -32,8 +32,6 @@ class CursesApp : public QCoreApplication TextRootWidget &rootWidget(); - void windowWasResized(); - protected slots: void refresh();