Changes in uspace/app/edit/edit.c [c80be58:3e6a98c5] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/edit/edit.c
rc80be58 r3e6a98c5 80 80 tag_t sel_start; 81 81 82 /** Active keyboard modifiers */83 keymod_t keymod;84 85 82 /** 86 83 * Ideal column where the caret should try to get. This is used … … 122 119 static void cursor_setvis(bool visible); 123 120 124 static void key_handle_press(kbd_event_t *ev);125 121 static void key_handle_unmod(kbd_event_t const *ev); 126 122 static void key_handle_ctrl(kbd_event_t const *ev); … … 128 124 static void key_handle_shift_ctrl(kbd_event_t const *ev); 129 125 static void key_handle_movement(unsigned int key, bool shift); 130 131 static void pos_handle(pos_event_t *ev);132 126 133 127 static int file_save(char const *fname); … … 188 182 int main(int argc, char *argv[]) 189 183 { 190 cons_event_t ev;184 kbd_event_t ev; 191 185 bool new_file; 192 186 int rc; … … 251 245 252 246 while (!done) { 253 console_get_ event(con, &ev);247 console_get_kbd_event(con, &ev); 254 248 pane.rflags = 0; 255 249 256 switch (ev.type) { 257 case CEV_KEY: 258 pane.keymod = ev.ev.key.mods; 259 if (ev.ev.key.type == KEY_PRESS) 260 key_handle_press(&ev.ev.key); 261 break; 262 case CEV_POS: 263 pos_handle(&ev.ev.pos); 264 break; 250 if (ev.type == KEY_PRESS) { 251 /* Handle key press. */ 252 if (((ev.mods & KM_ALT) == 0) && 253 ((ev.mods & KM_SHIFT) == 0) && 254 (ev.mods & KM_CTRL) != 0) { 255 key_handle_ctrl(&ev); 256 } else if (((ev.mods & KM_ALT) == 0) && 257 ((ev.mods & KM_CTRL) == 0) && 258 (ev.mods & KM_SHIFT) != 0) { 259 key_handle_shift(&ev); 260 } else if (((ev.mods & KM_ALT) == 0) && 261 ((ev.mods & KM_CTRL) != 0) && 262 (ev.mods & KM_SHIFT) != 0) { 263 key_handle_shift_ctrl(&ev); 264 } else if ((ev.mods & (KM_CTRL | KM_ALT | KM_SHIFT)) == 0) { 265 key_handle_unmod(&ev); 266 } 265 267 } 266 268 … … 284 286 285 287 return 0; 286 }287 288 /* Handle key press. */289 static void key_handle_press(kbd_event_t *ev)290 {291 if (((ev->mods & KM_ALT) == 0) &&292 ((ev->mods & KM_SHIFT) == 0) &&293 (ev->mods & KM_CTRL) != 0) {294 key_handle_ctrl(ev);295 } else if (((ev->mods & KM_ALT) == 0) &&296 ((ev->mods & KM_CTRL) == 0) &&297 (ev->mods & KM_SHIFT) != 0) {298 key_handle_shift(ev);299 } else if (((ev->mods & KM_ALT) == 0) &&300 ((ev->mods & KM_CTRL) != 0) &&301 (ev->mods & KM_SHIFT) != 0) {302 key_handle_shift_ctrl(ev);303 } else if ((ev->mods & (KM_CTRL | KM_ALT | KM_SHIFT)) == 0) {304 key_handle_unmod(ev);305 }306 288 } 307 289 … … 480 462 } 481 463 482 static void pos_handle(pos_event_t *ev)483 {484 coord_t bc;485 spt_t pt;486 bool select;487 488 if (ev->type == POS_PRESS && ev->vpos < (unsigned)pane.rows) {489 bc.row = pane.sh_row + ev->vpos;490 bc.column = pane.sh_column + ev->hpos;491 sheet_get_cell_pt(doc.sh, &bc, dir_before, &pt);492 493 select = (pane.keymod & KM_SHIFT) != 0;494 495 caret_move(pt, select, true);496 }497 }498 499 464 /** Move caret while preserving or resetting selection. */ 500 465 static void caret_move(spt_t new_caret_pt, bool select, bool update_ideal_column) … … 627 592 static char *prompt(char const *prompt, char const *init_value) 628 593 { 629 cons_event_t ev; 630 kbd_event_t *kev; 594 kbd_event_t ev; 631 595 char *str; 632 596 wchar_t buffer[INFNAME_MAX_LEN + 1]; … … 648 612 649 613 while (!done) { 650 console_get_event(con, &ev); 651 652 if (ev.type == CEV_KEY && ev.ev.key.type == KEY_PRESS) { 653 kev = &ev.ev.key; 654 614 console_get_kbd_event(con, &ev); 615 616 if (ev.type == KEY_PRESS) { 655 617 /* Handle key press. */ 656 if ((( kev->mods & KM_ALT) == 0) &&657 ( kev->mods & KM_CTRL) != 0) {618 if (((ev.mods & KM_ALT) == 0) && 619 (ev.mods & KM_CTRL) != 0) { 658 620 ; 659 } else if (( kev->mods & (KM_CTRL | KM_ALT)) == 0) {660 switch ( kev->key) {621 } else if ((ev.mods & (KM_CTRL | KM_ALT)) == 0) { 622 switch (ev.key) { 661 623 case KC_ESCAPE: 662 624 return NULL; … … 672 634 break; 673 635 default: 674 if ( kev->c >= 32 && nc < max_len) {675 putchar( kev->c);636 if (ev.c >= 32 && nc < max_len) { 637 putchar(ev.c); 676 638 console_flush(con); 677 buffer[nc++] = kev->c;639 buffer[nc++] = ev.c; 678 640 } 679 641 break;
Note:
See TracChangeset
for help on using the changeset viewer.