[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Eliot-dev] eliot/utils ncurses.cpp [cppdic]
From: |
eliot-dev |
Subject: |
[Eliot-dev] eliot/utils ncurses.cpp [cppdic] |
Date: |
Tue, 04 Dec 2007 19:12:25 +0000 |
CVSROOT: /cvsroot/eliot
Module name: eliot
Branch: cppdic
Changes by: Olivier Teulière <ipkiss> 07/12/04 19:12:25
Modified files:
utils : ncurses.cpp
Log message:
Ncurses interface: Fixed the problem with the backspace key
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/eliot/utils/ncurses.cpp?cvsroot=eliot&only_with_tag=cppdic&r1=1.22.2.3&r2=1.22.2.4
Patches:
Index: ncurses.cpp
===================================================================
RCS file: /cvsroot/eliot/eliot/utils/ncurses.cpp,v
retrieving revision 1.22.2.3
retrieving revision 1.22.2.4
diff -u -b -r1.22.2.3 -r1.22.2.4
--- ncurses.cpp 4 Dec 2007 11:10:00 -0000 1.22.2.3
+++ ncurses.cpp 4 Dec 2007 19:12:25 -0000 1.22.2.4
@@ -511,14 +511,15 @@
wint_t c;
wmove(win, y, x);
curs_set(1);
- while ((get_wch(&c)) == OK)
+ int res;
+ while ((res = get_wch(&c)) != ERR)
{
if (c == 0x1b ) // Esc
{
curs_set(0);
return false;
}
- else if (c == KEY_ENTER || c == 0xD)
+ else if ((c == KEY_ENTER && res == KEY_CODE_YES) || c == 0xD)
{
curs_set(0);
return true;
@@ -529,14 +530,14 @@
redraw(win);
wmove(win, y, x);
}
- else if (c == KEY_BACKSPACE && oString.size() > 0)
+ else if (c == KEY_BACKSPACE && res == KEY_CODE_YES && !oString.empty())
{
x--;
mvwprintw(win, y, x, " ");
wmove(win, y, x);
oString.erase(oString.size() - 1);
}
- else if (iswalnum(c) && oString.size() < (unsigned int)n)
+ else if (res == OK && iswalnum(c) && oString.size() < (unsigned int)n)
{
mvwprintw(win, y, x, "%lc", c);
x++;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Eliot-dev] eliot/utils ncurses.cpp [cppdic],
eliot-dev <=