在 mac os 和 linux 中 都是按下右键(mousedown) 即弹出菜单. 而 windows 中就是 右键松开才开始弹出菜单(mouseup).
不明白为什么要这么设计,我唯一能想到的是 按住右键 然后移动到想要的选项 松开 完成一次菜单选择.但是有什么意义?
这个问题甚至在早期还有一些奇怪的 BUG( https://bugs.launchpad.net/ubuntu/+source/gtk+2.0/+bug/410636) 由于菜单离鼠标比较近 菜单一个选项和鼠标位置刚好有几像素重叠, 你完成整个 click 操作后默认就选择了菜单第一项. 为了解决这个问题,他们把菜单离开鼠标几个像素....都这样 都不改松开出菜单?
有人说有一个发行版 ZorinOS 特点是模仿 windows 的操作习惯 只有这个发行版解决了这个问题.
1
ltkun 2023-05-08 18:31:33 +08:00 via Android 1
效率高啊 按下再弹出不是要两份时间
|
3
ltkun 2023-05-08 18:41:22 +08:00 via Android
啥 我 ff 下鼠标手势很正常啊 从开不注意你说的细节 linux 下最方便的是选中即复制 中键即粘帖 这个效率太高了
|
4
ltkun 2023-05-08 18:45:44 +08:00 via Android
可能你用的桌面不一样 我用 kde 很舒服 linux 一万个人有一万种用法 不舒服就自己调试 虽然我都是开箱即用那种 这就是开源的力量
|
5
cnbatch 2023-05-08 18:58:33 +08:00 2
看完描述我是一堆问号。
从上下文来看, 「不明白为什么要这么设计,我唯一能想到的是 按住右键 然后移动到想要的选项 松开 完成一次菜单选择.但是有什么意义?」 这句话似乎是在表达“不喜欢 mouse up 弹菜单,因为没什么意义” 但标题以及后续两段,表达的是“不喜欢 mouse down 弹菜单,更倾向于使用 mouse up 弹菜单” 如果两个做法都不满意,我觉得唯一能够做的,就是分成两个步骤: 1:左键点击目标 2:按下键盘的“菜单”按钮 缺点是,并非所有位置都适合。 |
6
xifangczy OP @ltkun 很久之前 firefox 就是为了鼠标手势扩展 有过大概是叫 contextMenu.onRelease 的选项 右键松开后弹出菜单.
|
7
wudicgi 2023-05-08 19:05:02 +08:00 6
Linux 的图形界面我觉得就是很不讲究,开发思想基本就是“能用就行了”
|
8
NoOneNoBody 2023-05-08 19:07:52 +08:00 1
|
9
aloxaf 2023-05-08 19:39:11 +08:00
为什么这么设计:我猜是早期设计的时候并没有多想
为什么没有改:用了五年 Linux 桌面了,我一直都没有意识到这个问题,网上搜了下相关的问题也寥寥无几……这个需求显然太过小众了 |
10
Rookie01 2023-05-08 19:41:23 +08:00
Mac + Win 双持 10 年以上的用户被你一说第一次发现这个逻辑…
|
11
ysw 2023-05-08 20:21:15 +08:00
还真是,怪不得很多浏览器,mac 和 linux 的鼠标手势都有点问题,只能在普通鼠标上用。但是我用 vivaldi 这个浏览器他改成了松开右键才弹出菜单了,所以可以在所有页面上用鼠标手势。
|
12
zoharSoul 2023-05-08 20:41:22 +08:00
你的意思是 win 的有问题还是 mac&linux 的有问题....
看不懂哎 |
13
Finnn 2023-05-08 20:49:15 +08:00
@ysw 恰好我发现的这个问题也是因为此,Mac 上的触摸板右键按下滑手势正常,Windows 触摸板就不行,因为识别方式就是 OP 说的原因,就导致了触摸板不呢响应按下的连续操作, 只有抬起才能出发响应
|
14
xifangczy OP @zoharSoul 说不上是问题, mac linux 这样设计导致无法右键框选 右键拖拽的功能, 有点得不偿失的感觉
|
15
zoharSoul 2023-05-08 21:33:57 +08:00
|
16
vvhy 2023-05-08 21:34:14 +08:00 1
是的,我用 easystroke 解决的 https://stackoverflow.com/q/66419930
|
17
lonr 2023-05-08 22:10:30 +08:00 via Android
说一个相关的 Windows / Linux(GNOME) 的区别。
alt+tab 切换窗口时,如果 tab 松开很快,GNOME 是不会显示图标的 最开始还想设置调出来,后来才想明白就应该这样 |
18
ysc3839 2023-05-08 22:12:52 +08:00 via Android 1
Windows 下可以按住鼠标右键拖动选中文件再放开显示菜单,不过很少软件支持这种操作
|
19
xifangczy OP @zoharSoul
如果 linux&mac 只为了这一个操作逻辑而失去右键更多功能 很不划算 而且会增加很多误触的几率 随便搜都是 https://youtrack.jetbrains.com/issue/JBR-1477/Mac-OS-X-Sierra-Mouse-right-click-context-menu-too-close-to-click-location-triggers-highlighted-action-unintentionally 所以我觉得 linux&mac 的这种设计目的很没意义 |
21
zoharSoul 2023-05-08 22:41:04 +08:00
@xifangczy #19 我怎么还是看不懂...
而 windows 中就是 右键松开才开始弹出菜单(mouseup). 不明白为什么要这么设计(这句话中的设计, 指的是上面那句吧? 就是 win 的, 右键松开才弹出 是这个意思吗? |
23
cnbatch 2023-05-09 00:21:19 +08:00
OP 不如使用补充功能讲清楚到底哪个不适合
根据这么多的讨论,我猜测如下—— Linux & macos 式右键( mouse down 就跳菜单)可以实现以下功能(感谢 @NoOneNoBody 提醒): 按住右键→跳出菜单→光标移到任意菜单项→松开右键→系统执行菜单项功能 OP 认为,这个使用方式毫无意义。 Windows 式右键( mouse up 跳菜单)可以实现以下功能: 1. 按住右键,拖拽多选一堆文件,松开后可以自动跳出多选后的右键菜单,而不需要左键多选再右键 2. 选中单个或多个文件,右键拖到某个位置,松开,自动跳出右键菜单 3. 对于浏览器鼠标手势十分友好 对于 1 ,压缩文件时比较方便。 对于 2 ,适合压缩以及解压文件。说起来,这个我有时也会用到,比如把某个 7zip 压缩包解压到另一个文件夹(开两个窗口,或者左侧“此电脑”目录树打开),用右键拖拽解压确实比较方便,既不需要复制或移动后再解压,又不需要打开命令行敲命令)。还有打包一堆文件时也会用到,可以直接创建到目标文件夹,而不需要打包完再剪切粘贴。 OP 认为应该采用 Windows 式右键更合理。 是这样吧? |
24
cnbatch 2023-05-09 00:25:37 +08:00
|
25
aloxaf 2023-05-09 01:46:39 +08:00 1
探究了一下这个问题。首先最早似乎是 GTK 这么干的,官方认为这种设计并没有问题,因为当你点击右键时,你肯定是要选择某一项,所以这种设计可以为你节省一次点击(真是 Geek 风的设计理由……)
然后 Gnome 是基于 GTK 的,并且 Gnome 当时是 Linux 第一大桌面,所以大家就都继承了这个行为…… 吐槽一下,这种问题吧,我认为可以探究,但实在没有纠结的必要。因为真的并不是每一个设计都是深思熟虑的,尤其是历史悠久的设计。大概率当初设计这个的程序员觉得没啥问题,然后就一直传承下来了,传承久了就不好改了。这类问题在不同操作系统中都普遍存在,比如我也可以问: - Windows 下的路径为什么要用 \ 来作为分隔符,这种设计和主流转义符冲突,还逼得 cmd 和 pwsh 选用了其他的转义符,这种设计有什么意义? - Windows 自带命令行工具为什么要用 / 来表示命令行参数,逼得路径只能用 \ 来表示? - 为什么 Windows 文件名不能包含 \?*<":>,微软程序员不会转义吗? - 为什么 win32 API 要分 A W 两套,而且内部使用 UTF-16 而不是 UTF-8 ? - 为什么 Windows 要将硬件时间视为本地时间,这样切换时区的时候硬件时间也要变更? …… |
26
terence4444 2023-05-09 01:58:10 +08:00 via iPhone
我用了那么久都没发现这个问题,右键框选拖拽其实是伪需求。可能手势会有影响。
|
27
tin3w5 2023-05-09 03:51:58 +08:00 via iPhone
这个问题完全没意义啊!人家就是那么设计的,你感觉不妥,你可以加入他们的 mail thread 、去提 issue 或者自己做二次开发啊!你提的这个问题好比关公战秦琼,他俩不是一个时代的,没打过,咋能知道谁能打得过谁?又好比如果谭嗣同他们成功了,能不能避免入侵?当年变法成功,人家当初就那么选的,你在 V2 上问?你应该去问对应的桌面环境开发者,毕竟大清现在早没了,开发者还健在呢!
|
28
xifangczy OP @aloxaf
是的 了解到是 GTK 的原因 我一直以来用的都是 gnome @terence4444 也不是伪需求吧... 需要右键拖拽的地方都改过了, 比如 firefox 浏览器为了手势扩展, cad 软件 等等... 然后很多软件需要特殊拖拽操作使用比如 ctrl+左键的方式, 这时候右键可能更方便 七八年前用过一个鼠标 忘记啥牌子 可以自定义 按住右键的时候滚轮就变成音量调节... 这种操作方式简直完美, 换成其他鼠标始终找不到这种设置, 最后自己写了一个小工具模拟这个操作逻辑... |
29
paranoiagu 2023-05-09 07:31:39 +08:00 via Android
你可以试试 Windows 下按下右键拖动后再放开
|
30
cnfczn 2023-05-09 08:30:07 +08:00 via Android
反正我是特别服气 windows 的右键菜单,系统用久了一按右键卡半天
|
32
U2Fsd 2023-05-09 09:42:54 +08:00
因为这些系统的开发者,并不使用鼠标手势。
也不关心使用鼠标手势的少数群体。 |
33
HeyWeGo 2023-05-09 10:03:54 +08:00
就像 29 楼那样的操作:按照右键拖动某个对象,到达目标位置后释放,出现菜单。windows 上我经常用,mac 上如何通过一个鼠标实现呢?
|
34
micromars 2023-05-09 10:23:44 +08:00
特意在 gnome 的桌面上试了一下,竟然发现之前不知道的功能, 长按鼠标右键是选择菜单,不选择也可以自动关闭菜单,感觉很好用
|
35
e7 2023-05-09 11:09:38 +08:00
为啥不做成 2 种方式都行,可配
|
36
ysc3839 2023-05-09 12:18:22 +08:00 via Android
@aloxaf Windows 的 Unicode 支持应该是经过深思熟虑的,因为很多老旧软件不支持 Unicode ,所以要保留一套非 Unicode 的 API 。至于 UTF-16 ,是因为当时还没有 UTF-8 ,同时代的其他系统,如 Java 或 NextSETP 也是使用 UTF-16 。
|
38
winterbells 2023-05-09 12:32:19 +08:00 via Android
一开始我也不知道,只是觉得好像鼠标有什么毛病,每次都自动点了第一个
|
39
iloveayu 2023-05-09 12:39:36 +08:00
Windows 得考虑防误触吧,毕竟用户多,很多带 GUI 的工业 /行业软件也在跑。
|
41
qqqyh 2023-05-09 14:21:15 +08:00
所以 mac/linux 下 chrome 浏览器的鼠标手势没法用,这一直是阻止我选 mac 的一大原因
|
42
AlynxZhou 2023-05-09 14:52:53 +08:00
从来不用浏览器手势,所以感觉没什么区别……而且我刚发现 GNOME 桌面上右键菜单是在 up 时候弹菜单的,和 GTK/Qt down 时候弹菜单不一样
|
43
debuggerx 2023-05-09 15:11:13 +08:00
|
44
ericwyn 2023-05-09 17:25:02 +08:00
哇,我用 ubuntu 办公快 5 年了吧,今天看到你这个问题我才发现有这个区别
主要是我根本没有右键按住然后进行额外操作的需求 |
45
opengps 2023-05-09 17:26:35 +08:00
右键按下即触发会有问题:丧失了右键的绘制功能和松开触发功能
|
46
james122333 2023-05-09 22:48:00 +08:00
这的确是 gtk 的锅 好像是绘製需要使用它的 gesture 方法 把这功能给应用处理
Firefox 的 about:config 中有 ui.context_menus.after_mouseup |
47
wty 2023-05-09 23:42:18 +08:00
默认选择第一项这个问题至今都存在,有的时候遇到了真是火大
|
48
ayerlk17 2023-05-10 09:57:21 +08:00
或者仅仅是设计取向不同?也有可能是这个点太小众(整个贴有不少人是现在才发现这个差异的),所以没有被关注到
|