LINUX.ORG.RU

ПКМ+тачпад — интересное поведение

 , ,


0

1

Ещё с давних времен мне не даёт покоя работа ПКМ тачпада на линуксах.

На виндах, помню, как было:

  1. Два пальца -> контекстное меню
  2. Тянешь палец, наводишь курсор на нужную кнопку
  3. Отпускаешь палец
  4. Снова нажимаешь одним пальцем и происходит действие

На линуксах же (и, вроде бы, такое поведение у меня наблюдалось во всех возможных дистрибутивах; и на иксах, и на вяленом; и давным-давно, и прямо сейчас) происходит это:

  1. Отпускаешь палец
  2. Внезапно кнопка нажимается

И это работает только если всё сделать достаточно быстро.

Поведение очень удобное. Нравится!

Вопрос: баг или фича? Почему? Вопрос в каких-то технических ограничениях?

Просто дайте немного контекста. Бессонница мучает. :)

ЕМНИП, быстрое касание двумя пальцами с последующим ведением одним производит перемещение с зажатой правой кнопкой, а большинство меню в стандартных тулкитах Linux поддерживают такой способ активации.

Можете проверить в чём-то вроде xev.

Rootlexx ★★★★★
()
Последнее исправление: Rootlexx (всего исправлений: 1)
Ответ на: комментарий от Rootlexx

Выходит, у нас с одной стороны libinput, и с другой стороны GUI тулкиты — оба поддерживают такое интересное поведение. Правильно понимаю?

Ребята, на самом деле, очень хорошо придумали. Для меня на ноутбуке это здорово ускоряет повседневную деятельность. Хотя бы по сравнению с виндами.

Без этого работа становится кисельной. Не удивлюсь, если на маках есть похожее.

witaway
() автор топика
Ответ на: комментарий от witaway

Выходит, у нас с одной стороны libinput, и с другой стороны GUI тулкиты — оба поддерживают такое интересное поведение. Правильно понимаю?

Да, libinput поддерживает перетаскивание с зажатой правой кнопкой, а тулкиты поддерживают активацию пунктов меню при отпускании кнопки (с мышкой это тоже работает).

Rootlexx ★★★★★
()
Ответ на: комментарий от Rootlexx

Можете проверить в чём-то вроде xev.

Проверил, получил вот такую цепочку событий:

  1. ButtonPress; button 3
  2. MotionNotify…
  3. ButtonRelease; button 3

Всё оказалось именно так, как вы говорите. Лично я ожидал увидеть

  1. ButtonPress; button 3
  2. ButtonPress; button 1
  3. MotionNotify…
  4. ButtonRelease; button 1
  5. ButtonRelease; button 3

Или хотя бы:

  1. ButtonPress; button 3
  2. ButtonRelease; button 3
  3. ButtonPress; button 1
  4. MotionNotify…
  5. ButtonRelease; button 1

Но текущий подход и правда лучше. Генерируется меньше событий, не нужно хранить никакой контекст. Годнота. Спасибо!

witaway
() автор топика