Mercurial > hg
comparison mcabber/src/screen.c @ 1561:2e86c1cc4eb1
Map mouse events to p* keycodes
author | franky |
---|---|
date | Thu, 30 Oct 2008 19:47:11 +0100 |
parents | 3df441efb7c2 |
children | c1d0f906d379 |
comparison
equal
deleted
inserted
replaced
1560:ec55cdf44335 | 1561:2e86c1cc4eb1 |
---|---|
731 noecho(); | 731 noecho(); |
732 nonl(); | 732 nonl(); |
733 intrflush(stdscr, FALSE); | 733 intrflush(stdscr, FALSE); |
734 start_color(); | 734 start_color(); |
735 use_default_colors(); | 735 use_default_colors(); |
736 #ifdef NCURSES_MOUSE_VERSION | |
737 mousemask(ALL_MOUSE_EVENTS, NULL); | |
738 #endif | |
736 | 739 |
737 if (settings_opt_get("escdelay")) { | 740 if (settings_opt_get("escdelay")) { |
738 #ifdef HAVE_ESCDELAY | 741 #ifdef HAVE_ESCDELAY |
739 ESCDELAY = (unsigned) settings_opt_get_int("escdelay"); | 742 ESCDELAY = (unsigned) settings_opt_get_int("escdelay"); |
740 #else | 743 #else |
3735 memset(ks, 0, sizeof(ks)); | 3738 memset(ks, 0, sizeof(ks)); |
3736 | 3739 |
3737 kcode->value = wgetch(inputWnd); | 3740 kcode->value = wgetch(inputWnd); |
3738 if (utf8_mode) { | 3741 if (utf8_mode) { |
3739 bool ismeta = (kcode->value == 27); | 3742 bool ismeta = (kcode->value == 27); |
3740 | 3743 #ifdef NCURSES_MOUSE_VERSION |
3744 bool ismouse = (kcode->value == KEY_MOUSE); | |
3745 | |
3746 if (ismouse) { | |
3747 MEVENT mouse; | |
3748 getmouse(&mouse); | |
3749 kcode->value = mouse.bstate; | |
3750 kcode->mcode = MKEY_MOUSE; | |
3751 return; | |
3752 } else if (ismeta) | |
3753 #else | |
3741 if (ismeta) | 3754 if (ismeta) |
3755 #endif | |
3742 ks[0] = wgetch(inputWnd); | 3756 ks[0] = wgetch(inputWnd); |
3743 else | 3757 else |
3744 ks[0] = kcode->value; | 3758 ks[0] = kcode->value; |
3745 | 3759 |
3746 for (i = 0; i < MAX_KEYSEQ_LENGTH - 1; i++) { | 3760 for (i = 0; i < MAX_KEYSEQ_LENGTH - 1; i++) { |
3816 | 3830 |
3817 if (!kcode.mcode || kcode.mcode == MKEY_EQUIV) | 3831 if (!kcode.mcode || kcode.mcode == MKEY_EQUIV) |
3818 g_snprintf(asciikey, 15, "%s", asciicode); | 3832 g_snprintf(asciikey, 15, "%s", asciicode); |
3819 else if (kcode.mcode == MKEY_META) | 3833 else if (kcode.mcode == MKEY_META) |
3820 g_snprintf(asciikey, 15, "M%s", asciicode); | 3834 g_snprintf(asciikey, 15, "M%s", asciicode); |
3835 else if (kcode.mcode == MKEY_MOUSE) | |
3836 g_snprintf(asciikey, 15, "p%s", asciicode); | |
3821 else | 3837 else |
3822 g_snprintf(asciikey, 15, "MK%d", kcode.mcode); | 3838 g_snprintf(asciikey, 15, "MK%d", kcode.mcode); |
3823 | 3839 |
3824 boundcmd = settings_get(SETTINGS_TYPE_BINDING, asciikey); | 3840 boundcmd = settings_get(SETTINGS_TYPE_BINDING, asciikey); |
3825 | 3841 |