X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbctextbox.C;fp=cinelerra-5.1%2Fguicast%2Fbctextbox.C;h=57a8c5dd31277cfcdaaf708b977c349cf5300500;hp=da7afa0f42e8b701228ad73d0cf3beeedf652d50;hb=09415d6aba2e181c49863393a047d0947c969d21;hpb=c5feedfabe3ee87dfae9a254c9b67c566ec15d2e diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index da7afa0f..57a8c5dd 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -1128,9 +1128,19 @@ int BC_TextBox::repeat_event(int64_t duration) void BC_TextBox::default_keypress(int &dispatch_event, int &result) { int key = top_level->get_keypress(), len; - if( (key == RETURN) || ( key >= 32 && key <= 255 ) ) { + if( (key == RETURN) || ( key >= 32 && key <= 255 ) || + (key >= KP1 && key <= KP9) || key == KPINS ) { wchar_t *wkeys = top_level->get_wkeystring(&len); - if( key == RETURN ) { wkeys[0] = '\n'; wkeys[1] = 0; len = 1; } + switch( key ) { + case RETURN: key = '\n'; goto kpchr; + case KPINS: key = '0'; goto kpchr; + case KP1: case KP2: case KP3: case KP4: case KP5: + case KP6: case KP7: case KP8: case KP9: + key = key - KP1 + '1'; + kpchr: + wkeys[0] = key; wkeys[1] = 0; len = 1; + break; + } insert_text(wkeys, len); find_ibeam(1); draw(1); @@ -1185,6 +1195,10 @@ int BC_TextBox::keypress_event() result = 1; wlen = 0; break; } + case KPINS: last_keypress = KP1-'1'+'0'; // fall thru + case KP1: case KP2: case KP3: case KP4: case KP5: + case KP6: case KP7: case KP8: case KP9: + last_keypress = last_keypress-KP1 + '1'; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': @@ -1618,7 +1632,7 @@ int BC_TextBox::keypress_event() default: { if( ctrl_down() ) { - switch( get_keypress() ) { + switch( last_keypress ) { case 'c': case 'C': { result = copy(0); break; }