motion51 incr line sz, shortcut tweaks, textbox numeric pad tweaks
[goodguy/history.git] / cinelerra-5.1 / guicast / bctextbox.C
index 57a8c5dd31277cfcdaaf708b977c349cf5300500..8de77f4f01d755a50f6404d92b4c485ab526cf0f 100644 (file)
@@ -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()