Событие щелчка мыши запускается при нажатии правой кнопки мыши и правой кнопкой мыши вверх

Я столкнулся с интересной проблемой при попытке перейти на MacOS.

Всякий раз, когда я иду, чтобы щелкнуть что-то правой кнопкой мыши, событие щелчка будет запущено при начальном событии мыши, а затем событие щелчка будет запущено при событии мыши.

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

Есть ли способ заставить ОС ждать события поднятия мыши, прежде чем она запустит другое событие щелчка?

Это разочаровывает в средах Linux и Windows, которые ждут, пока мышь не будет завершена, прежде чем выполнить щелчок.

Вам нужно уточнить, что именно является нежелательным поведением в OS X. Насколько я могу судить, OS X и современная Windows используют одинаковое поведение меню. Вы можете щелкнуть, чтобы открыть, а затем щелкнуть, чтобы выбрать, или вы можете перетащить меню. Было бы полезно, если бы вы описали шаг за шагом с помощью терминов «мышь вниз» и «движение».
Без проблем! Если вы используете рабочий стол как MacOS, так и Windows, я могу точно объяснить, что я имею в виду. Щелкните правой кнопкой мыши на рабочем столе и удерживайте ее. В MacOS всплывает контекстное меню, а в Windows его нет. Отпускание мыши в MacOS также считается щелчком, как и при первоначальном нажатии. Windows ждет, пока вы не отпустите, чтобы что-нибудь произошло. То же самое происходит и при щелчке левой кнопкой мыши, просто проще проиллюстрировать правым щелчком. TL;DR: MacOS запускает событие щелчка как при нажатии мыши, так и при поднятии мыши, в то время как Windows ждет, пока произойдет и то, и другое, прежде чем запускать событие одиночного щелчка.
Я забыл добавить кое-что. Если вы используете MacOS и все еще удерживаете правую кнопку мыши после появления контекстного меню, наведение курсора на любой элемент и отпускание вызовут щелчок по этому элементу. Это влияет на попытки быстро перемещаться с помощью мыши во время щелчка. В конечном итоге вы нажмете более чем на одну вещь, что никогда не было целью.
Вы говорите о конкретном краевом случае, правом перетаскивании. В обычном случае OS X срабатывает при поднятии мыши. Удерживайте кнопку на значке Finder, он не подсвечивается, пока не будет отпущен.
Ах, кажется, вы совершенно правы. Я собираюсь обновить вопрос, чтобы отразить это, и посмотреть, можно ли что-нибудь сделать с этим крайним случаем. Спасибо!

Ответы (1)

Это зависит от времени.

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

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