Обнаружение щелчков мыши в эмуляторе терминала без прерывания прокрутки - PullRequest
0 голосов
/ 13 марта 2020

Используя управляющие последовательности XTERM (в частности, CSI ?1000h), я могу получать уведомления о поступлении в любой момент, когда пользователь нажимает на окно терминала. К сожалению, это также означает, что я получаю уведомление, если колесо прокрутки вращается, вместо обычной прокрутки терминала. Есть ли способ, предпочтительно легко и просто, просто получать уведомления о щелчках и ничего больше?

В качестве альтернативы, есть ли способ отправить escape-последовательность, которую эмулятор терминала будет интерпретировать как "о, ты хочешь, чтобы я прокручивал нормально"? Я бы (неохотно) согласился с необходимостью проанализировать все команды мыши, а затем, если я заметил сигнал прокрутки вверх (кнопка 96 или 64 в зависимости от режима), отозвался бы эхом, сказав: «здесь, терминал, вы справитесь с этим ». Теоретически это должны быть действия scroll-forw и scroll-back, но я не нашел способа использовать их напрямую.

Если это имеет какое-то значение, я использую xfce4-терминал, но я готов попробовать другие эмуляторы терминала, если это поможет отладить это.

1 Ответ

0 голосов
/ 16 марта 2020

Протокол X10 отправляет только щелчки (без колесика мыши). Это задокументировано. Но это для xterm.

VTE (проверка только сейчас с терминалом XFCE) отличается от xterm отправкой событий колесом мыши. У VTE нет документации, достойной упоминания, за исключением исходного кода ( ymmv ).

scroll-forw и прокрутка назад действия - это функции xterm, для которых в VTE нет аналогов.

...