LINUX.ORG.RU
ФорумTalks

[мы идиоты][внезапно][опять] Всплывающие меню + глобальные хоткеи = ?

 ,


0

2

Господа, все мы, кто недавно рассуждал о невозможности обработки глобальных хоткеев в то время, когда открыто вплывающее меню, — у меня для нас пренеприятнейшее известие. Мы все — идиоты. Увы, но это правда.

Два факта:

  • В приложениях, написанных на Fox toolkit, всплывающие меню не захватывают клавиатуру и не блокируют работу хоткеев. При этом переключение на другое приложение оставляет меню открытым, но не реагирующим на клавиатуру. При возврате в окно приложения, открывшего меню, меню снова начинает реагировать на клавиатуру.
  • В Firefox (который, вроде бы, юзает gtk, не?) меню также не блокирует глобальные хоткеи. Видимое отличие от Fox toolkit тут в том, что при потере окном файрфокса фокуса, меню исчезает.

Итак. Если мы подумаем, то поймём простую вещь: если меню открывает то приложение, которое имеет в этот момент фокус ввода, то захват клавиатуры не обязателен. Тулкит в этом случае сам может перенаправлять сообщения из сфокусированного окна окну меню.

Ну что, есть желающие написать патч для gtk? :D

Ответ на: комментарий от geekless

То что во время открытого меню не работают хоткеи - это не проблема, это так и должно быть. Потому что концепция меню заключается в том что бы произвести быструю операцию доступа к функционалу(не знаю я как точнее выразить). Т.о. тыцать хоткеи и вызывать/запускать другие приложения во время активного меню - мысль немного бредовая. Остальное не в курсе.

Ну это мое мнение, и оно может не совпадать с чьимто еще.

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

Ты интерфейс фирефоха видел вообще? Фирефох использует стандартные контроллы gtk. Кнопки, чекбоксы, полосы прокрутки, менюшки. Ферштейн?

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

> То что во время открытого меню не работают хоткеи - это не проблема, это так и должно быть.

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

Т.о. тыцать хоткеи и вызывать/запускать другие приложения во время активного меню - мысль немного бредовая.

Т.е. в ситуации, когда ты: открыл меню, передумал, сделал что-то другое (переключил рабочий стол, запустил другую программу и т.п., где нужны глобальные хоткеи) — во этих ситуациях ты будешь каждый раз героически жать Esc (а в случае вложенного меню — еще и ни один раз подряд), убеждая себя, что всё идёт по плану? Подумай: почему ты прогибаешься под проблемы софта настолько, что перестаешь их считать проблемами и начинаешь считать фичами?

geekless ★★
() автор топика

> который, вроде бы, юзает gtk, не?
Верно, но не до конца. Там только частичная поддержка.

CYB3R ★★★★★
()

>Мы все — идиоты

Вот не надо обобщать! За себя говори.

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

> Нет, это проблема. Вызванная отсутствием прямых способов работать со вводом в таких окнах в иксах, а не философскими соображениями о эргономике.

Фразу не понял, но суть уловил - это «фича» X-сервера, верно ?

Т.е. в ситуации, когда ты: открыл меню, передумал, сделал что-то другое (переключил рабочий стол, запустил другую программу и т.п., где нужны глобальные хоткеи) — во этих ситуациях ты будешь каждый раз героически жать Esc.


Не чувак, я жать ничего не буду. Меню само закроется. Кстати этот баг активно наблюдаю в виндовом стим клиенте. Вот там нереально раздражает. А вот в своем «удобненьком КДЕ» я проблем с автозакрытием меню не наблюдал... Или ты хочешь гуглить назначение пунктов меню в другом окне(браузере например) ?

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

> это «фича» X-сервера, верно ?

Там есть такая фича, как захват (grab) устройства. Меню, выпадающие списки и прочие окна, которые хотят получать ввод без смены фокуса ввода, выполняют активный захват клавиатуры. В то же время, глбальные хоткеи работают через пассивный захват. Т.е. клиент будет автоматически захватывать ввод, когда нажат соответствующий хоткей. Проблема в том, что когда клавиатура захвачена, пассивный захват не работает.

Глобально проблему можно пофиксить (как один из вариантов), отслеживая на сервере хоткеи даже при захваченной клаиватуре и прерывая активный захват, если есть совпадение с хоткеем.

Локально (в пределах одного приложения, работающего на одном тулките) проблему можно решить, не выполняя захват для менюшек вообще.

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

А... дошло... Переключаюсь то я мышкой(на другое окно), что форсирует смену фокуса... Так ? ну если так, то я опять же не вижу проблемы.

Хотя вот сейчас припоминаю, что переключаясь между рабочими столами(у меня это Альт+1..4), иногда таки приходится давить эскейп. Впрочем это не напрягает, т.к. кнопка как раз под рукой во время переключения.

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

Ты не мог не отметиться, это было предсказуемо. {:

geekless ★★
() автор топика

У меня хоткеи блокирует только долбанное меню в гвиме, которое я открываю раз в две недели буквально на полминуты

yoghurt ★★★★★
()

geekless

В Firefox (который, вроде бы, юзает gtk, не?) меню также не блокирует глобальные хоткеи.

4.2!

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

geekless

Фирефох использует стандартные контроллы gtk. Кнопки, чекбоксы, полосы прокрутки, менюшки.

4.2!

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

По ссылкам ходить тоже не обязаны? Тогда и не надо отстаивать свою позицию не разобравшись с её материалом.

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

По твоей ссылке нет НИЧЕГО о том, что xul не использует виджеты gtk. Уймись, жывотнае, еще раз говорю.

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

у тебя тоже
ПКМ, хоткей (курсор не на меню) ---> хоткей не отрабатывает, меню пропадает
либо же отрабатывает, если он клаво-хоткей
хоткеи с мыши не отрабатывают точно

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

> ПКМ, хоткей (курсор не на меню) ---> хоткей не отрабатывает, меню пропадает

ПКМ, хоткей (курсор не на меню) ---> меню пропадает, хоткей отрабатывает.

либо же отрабатывает, если он клаво-хоткей

А шо, бывают другие?

хоткеи с мыши не отрабатывают точно

Что такое «хоткей с мыши»? Мегабакс... на мыши у тебя... Keys?!

geekless ★★
() автор топика

>> В Firefox (который, вроде бы, юзает gtk, не?) меню также не блокирует глобальные хоткеи.

У меня блокирует.

GotF ★★★★★
()

>> В приложениях, написанных на Fox toolkit, всплывающие меню не захватывают клавиатуру и не блокируют работу хоткеев.

FLTK? Тоже блокируется.

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

geekless

Что такое «хоткей с мыши»? Мегабакс... на мыши у тебя... Keys?!

"/usr/bin/xvkbd -text "\[XF86AudioPlay]""
  b:10

"deadbeef"
 Alt + b:10

"amixer set Master 1+"
Alt + b:4

"amixer set Master 1-"
  Alt + b:5

"/usr/bin/xvkbd -text "\[XF86AudioNext]""
  Alt + b:9 

"/usr/bin/xvkbd -text "\[XF86AudioPrev]""
  Alt + b:8 

"/usr/bin/xvkbd -text "\[Control_L]\[r]""
b:12

"/usr/bin/xvkbd -text "\[Alt]\[Left]""
b:8

"/usr/bin/xvkbd -text "\[Alt]\[Right]""
b:9

таки дела

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

IMO это не та «проблема» которой следует срочно уделять внимание. Это назвать проблемой, действительно весьма сложно, отчасти еще и потому что клавиатурщиков(читай хоткей-дрочеров) даже в гик сообществах весьма малый процент. Таким образом вкладывать Н человеко-часов в решение «проблемы» - просто неразумно.

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

Охренеть логика - проблема есть, но её не надо называть проблемой.

отчасти еще и потому что клавиатурщиков(читай хоткей-дрочеров) даже в гик сообществах весьма малый процент

ЩИТО? Это ты о windows-geek сообществах?

Таким образом вкладывать Н человеко-часов в решение «проблемы» - просто неразумно.

Закрывать глаза на проблему и переставать называть это проблемой - это как минимум идиотизм.

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

Мышевозы не хотят решения проблем :}

Deleted
()
Ответ на: комментарий от megabaks

Я так понимаю, b:4 и b:5 — это основное колесо, а прочие b — 100500 допкнопок?

Увы, от захвата мыши, видимо, никуда не деться.

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

> Охренеть логика - проблема есть, но её не надо называть проблемой.

Охренеть другое: ты читаешь текст но смысл не понимаешь. Поясню. Существует масса более приоритетных проблем и багов.

ЩИТО? Это ты о windows-geek сообществах?


фапающая школота ни входит ни в какое гик сообщество. Расслабся.

Закрывать глаза на проблему и переставать называть это проблемой - это как минимум идиотизм.


Ну если ты такой голосистый и борешься за справедливость - твой удел 12309. И что бы не пискнул пока не пофиксишь.

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

xD А то... Девайс кстати адово удобен...

Jetty ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.