summaryrefslogtreecommitdiff
path: root/atari/treeview.c
diff options
context:
space:
mode:
authorOle Loots <ole@monochrom.net>2011-11-23 22:25:22 +0000
committerOle Loots <ole@monochrom.net>2011-11-23 22:25:22 +0000
commit5da485d423cd6287fb4e401b7a73a9003891ef33 (patch)
tree58b07f649e78786a648eef11cd757e7d55710651 /atari/treeview.c
parent0c7b4bc6c7f2e186f2e7381da593946b9949cf04 (diff)
downloadnetsurf-5da485d423cd6287fb4e401b7a73a9003891ef33.tar.gz
netsurf-5da485d423cd6287fb4e401b7a73a9003891ef33.tar.bz2
Use new function nkc_to_input_key
svn path=/trunk/netsurf/; revision=13169
Diffstat (limited to 'atari/treeview.c')
-rwxr-xr-xatari/treeview.c53
1 files changed, 13 insertions, 40 deletions
diff --git a/atari/treeview.c b/atari/treeview.c
index f2114a70b..07fe395fb 100755
--- a/atari/treeview.c
+++ b/atari/treeview.c
@@ -61,52 +61,25 @@ static void __CDECL evnt_tv_keybd( WINDOW *win, short buff[8], void * data )
bool r=false;
long kstate = 0;
long kcode = 0;
+ long ucs4;
+ long ik;
unsigned short nkc = 0;
unsigned short nks = 0;
unsigned char ascii;
- NSTREEVIEW tv = (NSTREEVIEW) data;
+
+ NSTREEVIEW tv = (NSTREEVIEW) data;
kstate = evnt.mkstate;
kcode = evnt.keybd;
- nkc= gem_to_norm( (short)kstate, (short)kcode );
+ nkc= gem_to_norm( (short)kstate, (short)kcode );
ascii = (nkc & 0xFF);
- nkc = (nkc & (NKF_CTRL|NKF_SHIFT|0xFF));
- if( (nkc & (NKF_SHIFT|NKF_CTRL) ) == 0 ) {
- switch( ascii ) {
- case NK_BS:
- r = tree_keypress( tv->tree, KEY_DELETE_LEFT);
- break;
-
- case NK_DEL:
- r = tree_keypress( tv->tree, KEY_DELETE_RIGHT);
- break;
-
- case NK_ENTER:
- r = tree_keypress( tv->tree, KEY_NL);
- break;
-
- case NK_RET:
- r = tree_keypress( tv->tree, KEY_CR);
- break;
-
- case NK_ESC:
- r = tree_keypress( tv->tree, KEY_ESCAPE);
- break;
-
- case NK_RIGHT:
- r = tree_keypress( tv->tree, KEY_RIGHT );
- break;
-
- case NK_LEFT:
- r = tree_keypress( tv->tree, KEY_LEFT );
- break;
-
- default:
- break;
- }
- }
- if ( r == false && ( (nkc & NKF_CTRL)==0) ) {
- int ucs4 = atari_to_ucs4(ascii);
- tree_keypress( tv->tree, ucs4 );
+ ik = nkc_to_input_key( nkc, &ucs4 );
+
+ if( ik == 0 ){
+ if (ascii >= 9 ) {
+ r = tree_keypress( tv->tree, ucs4 );
+ }
+ } else {
+ r = tree_keypress( tv->tree, ik );
}
}