Changeset b987eb4 in mainline for uspace/lib/ui/src/entry.c


Ignore:
Timestamp:
2022-03-11T16:42:03Z (3 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b3b48f4
Parents:
c38ab6c
Message:

Translate keys to characters even if modifiers are pressed.

So that we can match Alt-key to menu accelerators. Of course
this means clients must check Ctrl and Alt state to determine
if they should insert characters, not just just kbd_event_t.c.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/src/entry.c

    rc38ab6c rb987eb4  
    664664                break;
    665665        }
    666 
    667666        return ui_claimed;
    668667}
     
    743742        if (!entry->active)
    744743                return ui_unclaimed;
    745 
    746         if (event->type == KEY_PRESS && event->c >= ' ') {
    747                 off = 0;
    748                 rc = chr_encode(event->c, buf, &off, sizeof(buf));
    749                 if (rc == EOK) {
    750                         buf[off] = '\0';
    751                         (void) ui_entry_insert_str(entry, buf);
    752                 }
    753         }
    754744
    755745        /*
     
    768758        if (event->type == KEY_RELEASE && event->key == KC_RSHIFT)
    769759                entry->rshift_held = false;
     760
     761        if (event->type == KEY_PRESS &&
     762            (event->mods & (KM_CTRL | KM_ALT)) == 0 && event->c >= ' ') {
     763                off = 0;
     764                rc = chr_encode(event->c, buf, &off, sizeof(buf));
     765                if (rc == EOK) {
     766                        buf[off] = '\0';
     767                        (void) ui_entry_insert_str(entry, buf);
     768                }
     769        }
    770770
    771771        if (event->type == KEY_PRESS &&
Note: See TracChangeset for help on using the changeset viewer.