dwm 下的 Firefox 上下文菜单放置

dwm 下的 Firefox 上下文菜单放置

我最近开始使用dwmFirefox,但在单击鼠标右键时遇到了奇怪的行为。

i3 下上下文菜单的放置

上面是 Firefox 在大多数窗口管理器下打开的上下文菜单。 (这张特定的照片是在 i3 中拍摄的,但在 Gnome 和其他窗口管理器和桌面环境中也是一样的)。请注意,上下文菜单出现在光标热点右侧下方几个像素的位置,因此释放鼠标按钮不会激活菜单中的任何内容;菜单保持打开状态,您可以通过随后的单击从中选择某些内容。

dwm 下上下文菜单的放置

相比之下,上面的镜头是 Firefox 在 dwm 下打开上下文菜单。请注意,上下文菜单直接出现在光标热点下方,因此按下并释放鼠标按钮会立即触发“在新选项卡中打开链接”项目并关闭菜单。 (如果您在非链接上单击鼠标右键,“返回”选项也会发生同样的情况)

这似乎只发生在 Firefox 中; Chrome 的上下文菜单出现在正确的位置,Gnome Terminal 和 Gimp 中的上下文菜单也是如此。还有其他人遇到过这个问题并知道解决方法吗?

答案1

这似乎是 Firefox dwm(版本 6.1)或 Firefox(版本 57.04)中的一个错误,但导致此错误行为的原因如下:

在dwm的配置文件中config.h,有这样一行:

static const unsigned int borderpx  = 2;        /* border pixel of windows */

该值指定 dwm 的窗口边框有多大。默认情况下,该值设置为 2。我已将此值增加到 4,以便更容易判断当前哪个窗口拥有焦点。 (默认情况下,dwm 以中灰色绘制非聚焦窗口边框,以中蓝色绘制聚焦窗口边框,我个人觉得从眼角瞥见时在非常窄的线条中很难区分)

一切都很好,但borderpx意外的情况似乎也影响了 Firefox 上下文菜单的位置(以及仅有的Firefox 的上下文菜单;其他程序中的上下文菜单似乎不受影响);当它打开时,对于每个大于 2 的整数值,菜单会向顶部进一步移动 1 个像素,向左移动 1 个像素。

borderpx例如,如果设置为 30,Firefox 的上下文菜单将相对于光标打开:

奇怪的位置!

任何高于“2”的值都会导致 Firefox 的上下文菜单打开,菜单的活动部分直接出现在光标热点下方,因此如果您单击鼠标右键,就会自动激活。因此,要解决此问题,您需要将borderpx值减小到 2 或更低。 (或者,我想,如果您想让上下文菜单完全显示在您单击的位置的左侧,并且可以接受所有窗口周围的粗得荒谬的边框,则可以将其增加到超过 268)

这个故事的寓意:如果你想让 dwm 的聚焦窗口更快地被识别,可以通过改变颜色的边界,而不是通过改变宽度的边界。

相关内容