Я могу echo -e "\e[?1003h"
и наблюдать, как мой терминал поглощает события движения мыши, такие как конфеты, но проклятия, кажется, не хотят их вообще.Я посмотрел на
События движения мыши в NCurses
, но похоже, что эта проблема была решена путем изменения env TERM, что не помогло бы мне, потому что мой терминалдействительно, реагируя на события перемещения мыши, ncurses - нет.Вот кое-что, что я попробовал (Этот код был почти полностью взят из другого вопроса):
#include <ncurses.h>
#include <assert.h>
int main(){
int ch, count=0;
mmask_t old;
initscr ();
noecho ();
cbreak ();
mousemask (ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION, &old);
keypad (stdscr, TRUE);
printf("\033[?1003h");
while ((ch = getch ()) != 'q')
{
count++;
if (ch == KEY_MOUSE)
{
MEVENT event;
assert (getmouse (&event) == OK);
mvprintw (0, 0, "Mouse Event!\n");
}
mvprintw (1, 1, "Event number %4d",count);
refresh();
}
endwin();
}
Дополнительная информация и предупреждение:
Эта программа фактически способна обнаруживать движение мыши ПОСЛЕ выполнения.Это можно изменить с помощью команды echo -e "\e[?1000h"