В Windows, если ты открываешь мышью контекстное меню, оно открывается по отпусканию кнопки, справа и внизу от текущего положения курсора. За очень редким исключением. Потому что контекстные меню открываются функцией API, у которой именно так заданы умолчания.
В Ubuntu, даже в пределах одной framework — GNOME — поведение отличается в зависимости от контекста.
- Меню верхней панели открывается по нажатию, так, что мышь оказывается на первом пункте, и отпускание кнопки ведёт к выполнению его.
- Меню нижней панели «подставляет» свой последний пункт.
- Меню элементов панели (launcher’ов, часов, индикатора языка ввода) — вываливается по нажатию, выравнивается верхним краем по нижнему краю панели (или нижним — по верхнему). При коротком нажатии открывается, при длинном — открывается и закрывается обратно.
- Меню заголовка окна вываливается по нажатию, при отпускании кнопки сразу меню остаётся висеть, при этом следующий клик в той же точке ведёт к выполнению первой команды. Так же ведут себя меню текстового редактора в gedit и pidgin и меню терминала.
- Меню Firefox’а открываются по отпусканию, справа и внизу. По клику в том же месте закрывается без выполнения какой-либо команды.
Эта шизофрения указывает на то, что в API никаких разумных умолчаний на этот счёт нет. Либо все разработчики считают себя умнее и выставляют неумолчательные значения.
А как с этим в KDE? А на Mac’е?
no subject
Date: 2008-02-05 06:08 (UTC)Делала следующее: щёлкала правой мышью коротко и длительно. Обращала внимание, в каком направлении от курсора открывается меню. Обращала внимание на то, что происходит при повторном клике во время открытого меню.
Наблюдала 3 типа поведения...
Во всех случаях меню открывается чуть правее и чуть ниже курсора. Исключение составляет случай, когда курсор находится близко к пределам окна, когда меню могло бы остаться за пределами экрана. В этом случае соответствующая ось корректируется.
Различия бывают следующие:
1. По второму клику в той же точке меню либо закрывается, либо нет. В большинстве случаев остаётся. (Закрывается, в частности, в Мозилле.)
2. Первый пункт меню при вызове либо подсвечивается, либо нет. В большинстве случаев нет. Там, где подсвечивается (это, кстати, GNOM-овое окно :) ), там тоже выполняется пункт (1). Без запуска подсвеченной команды.
no subject
Date: 2008-02-05 12:44 (UTC)Пор последнее не понял вовсе, но открывается по нажатию, а не отпусканию.
no subject
Date: 2008-02-05 19:15 (UTC)no subject
Date: 2008-02-05 15:18 (UTC)Но вообще странно - у Gnome есть HIG, там что, это не прописано?