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=8de77f4f01d755a50f6404d92b4c485ab526cf0f;hp=57a8c5dd31277cfcdaaf708b977c349cf5300500;hb=667a32e310893e4df0412eb8e91263d4dc57e12e;hpb=3b781cd7b4b9c477e637adb876a229d2781ee33b;ds=sidebyside diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index 57a8c5dd..8de77f4f 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -1128,25 +1128,28 @@ 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 ) || - (key >= KP1 && key <= KP9) || key == KPINS ) { - wchar_t *wkeys = top_level->get_wkeystring(&len); - 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); - dispatch_event = 1; - result = 1; - } + wchar_t *wkeys = top_level->get_wkeystring(&len); + switch( key ) { + case KPENTER: key = '\n'; goto kpchr; + case KPMINUS: key = '-'; goto kpchr; + case KPPLUS: key = '+'; goto kpchr; + case KPDEL: key = '.'; goto kpchr; + 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'; goto kpchr; + default: + if( key < 32 || key > 255 ) return; + kpchr: { + wkeys[0] = key; wkeys[1] = 0; len = 1; + break; } + } + insert_text(wkeys, len); + find_ibeam(1); + draw(1); + dispatch_event = 1; + result = 1; } int BC_TextBox::keypress_event()