improve handling backspace key

This commit is contained in:
Andrzej Rybczak
2009-03-26 12:26:22 +01:00
parent cbc452fde5
commit a6635322a8
3 changed files with 7 additions and 10 deletions

View File

@@ -153,7 +153,7 @@ void DefaultKeys(ncmpcpp_keys &keys)
keys.ToggleAutoCenter[0] = 'U'; keys.ToggleAutoCenter[0] = 'U';
keys.ToggleDisplayMode[0] = 'p'; keys.ToggleDisplayMode[0] = 'p';
keys.ToggleLyricsDB[0] = 'L'; keys.ToggleLyricsDB[0] = 'L';
keys.GoToParentDir[0] = 263; keys.GoToParentDir[0] = KEY_BACKSPACE;
keys.SwitchTagTypeList[0] = '`'; keys.SwitchTagTypeList[0] = '`';
keys.Quit[0] = 'q'; keys.Quit[0] = 'q';

View File

@@ -443,7 +443,7 @@ string Window::GetString(const string &base, size_t length, size_t width, bool e
// these key codes are special and should be ignored // these key codes are special and should be ignored
if ((input < 10 || (input > 10 && input < 32)) if ((input < 10 || (input > 10 && input < 32))
# ifdef USE_PDCURSES # ifdef USE_PDCURSES
&& input != 8) // backspace key in pdcurses && input != KEY_BACKSPACE)
# else # else
) )
# endif // USE_PDCURSES # endif // USE_PDCURSES
@@ -467,9 +467,6 @@ string Window::GetString(const string &base, size_t length, size_t width, bool e
break; break;
} }
case KEY_BACKSPACE: case 127: case KEY_BACKSPACE: case 127:
# ifdef USE_PDCURSES
case 8: // backspace key in pdcurses
# endif // USE_PDCURSES
{ {
if (x <= minx && !beginning) if (x <= minx && !beginning)
break; break;
@@ -483,11 +480,7 @@ string Window::GetString(const string &base, size_t length, size_t width, bool e
} }
else if (beginning > 0) else if (beginning > 0)
beginning--; beginning--;
if (input != KEY_BACKSPACE && input != 127 if (input != KEY_BACKSPACE && input != 127)
# ifdef USE_PDCURSES
&& input != 8 // backspace key in pdcurses
# endif // USE_PDCURSES
)
break; // backspace = left & delete. break; // backspace = left & delete.
} }
case KEY_DC: case KEY_DC:

View File

@@ -31,6 +31,10 @@
#include <vector> #include <vector>
#include <string> #include <string>
// this points to nothing, so redefine it
#undef KEY_BACKSPACE
#define KEY_BACKSPACE 8
#ifdef _UTF8 #ifdef _UTF8
# define my_char_t wchar_t # define my_char_t wchar_t
# define TO_STRING(x) ToString(x) # define TO_STRING(x) ToString(x)