- Timestamp:
- May 4, 2009, 9:55:17 PM (16 years ago)
- Branches:
- master, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 3a84694
- Parents:
- adee9cc
- git-author:
- Nelson Elhage <nelhage@mit.edu> (05/04/09 20:24:13)
- git-committer:
- Nelson Elhage <nelhage@mit.edu> (05/04/09 21:55:17)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
owl.c
radee9cc rd6bd3f1 571 571 void owl_process_input(owl_dispatch *d) 572 572 { 573 int ret;574 573 owl_input j; 575 owl_popwin *pw;576 owl_editwin *tw;577 574 WINDOW *typwin; 578 575 579 576 typwin = owl_global_get_curs_typwin(&g); 577 580 578 while (1) { 581 579 j.ch = wgetch(typwin); 582 580 if (j.ch == ERR) return; 583 584 owl_global_set_lastinputtime(&g, time(NULL));585 pw=owl_global_get_popwin(&g);586 tw=owl_global_get_typwin(&g);587 581 588 582 j.uch = '\0'; … … 630 624 j.uch = j.ch; 631 625 } 632 633 owl_global_set_lastinputtime(&g, time(NULL)); 634 /* find and activate the current keymap. 635 * TODO: this should really get fixed by activating 636 * keymaps as we switch between windows... 637 */ 638 if (pw && owl_popwin_is_active(pw) && owl_global_get_viewwin(&g)) { 639 owl_context_set_popless(owl_global_get_context(&g), 640 owl_global_get_viewwin(&g)); 641 owl_function_activate_keymap("popless"); 642 } else if (owl_global_is_typwin_active(&g) 643 && owl_editwin_get_style(tw)==OWL_EDITWIN_STYLE_ONELINE) { 644 /* 645 owl_context_set_editline(owl_global_get_context(&g), tw); 646 owl_function_activate_keymap("editline"); 647 */ 648 } else if (owl_global_is_typwin_active(&g) 649 && owl_editwin_get_style(tw)==OWL_EDITWIN_STYLE_MULTILINE) { 650 owl_context_set_editmulti(owl_global_get_context(&g), tw); 651 owl_function_activate_keymap("editmulti"); 652 } else { 653 owl_context_set_recv(owl_global_get_context(&g)); 654 owl_function_activate_keymap("recv"); 655 } 656 /* now actually handle the keypress */ 657 ret = owl_keyhandler_process(owl_global_get_keyhandler(&g), j); 658 if (ret!=0 && ret!=1) { 659 owl_function_makemsg("Unable to handle keypress"); 660 } 626 627 owl_process_input_char(j); 628 } 629 } 630 631 void owl_process_input_char(owl_input j) 632 { 633 int ret; 634 owl_popwin *pw; 635 owl_editwin *tw; 636 637 owl_global_set_lastinputtime(&g, time(NULL)); 638 pw=owl_global_get_popwin(&g); 639 tw=owl_global_get_typwin(&g); 640 641 owl_global_set_lastinputtime(&g, time(NULL)); 642 /* find and activate the current keymap. 643 * TODO: this should really get fixed by activating 644 * keymaps as we switch between windows... 645 */ 646 if (pw && owl_popwin_is_active(pw) && owl_global_get_viewwin(&g)) { 647 owl_context_set_popless(owl_global_get_context(&g), 648 owl_global_get_viewwin(&g)); 649 owl_function_activate_keymap("popless"); 650 } else if (owl_global_is_typwin_active(&g) 651 && owl_editwin_get_style(tw)==OWL_EDITWIN_STYLE_ONELINE) { 652 /* 653 owl_context_set_editline(owl_global_get_context(&g), tw); 654 owl_function_activate_keymap("editline"); 655 */ 656 } else if (owl_global_is_typwin_active(&g) 657 && owl_editwin_get_style(tw)==OWL_EDITWIN_STYLE_MULTILINE) { 658 owl_context_set_editmulti(owl_global_get_context(&g), tw); 659 owl_function_activate_keymap("editmulti"); 660 } else { 661 owl_context_set_recv(owl_global_get_context(&g)); 662 owl_function_activate_keymap("recv"); 663 } 664 /* now actually handle the keypress */ 665 ret = owl_keyhandler_process(owl_global_get_keyhandler(&g), j); 666 if (ret!=0 && ret!=1) { 667 owl_function_makemsg("Unable to handle keypress"); 661 668 } 662 669 }
Note: See TracChangeset
for help on using the changeset viewer.