1

有人可以澄清 X11 服务器的默认焦点处理吗?我的理解是焦点“跟随鼠标”,如果我在不同的终端之间移动鼠标,我可以看到光标随着每个窗口获取/失去焦点而变化。

但是当我运行两个 xev 窗口并在它们之间移动指针时,当指针从一个窗口移动到另一个窗口时,我会看到大量的 MotionNotify/EnterNotify/LeaveNotify——但是却看不到 FocusIn 和 FocusOut。这是xev中的一个奇怪之处吗?是否需要应用一些特殊的掩码或属性才能生成这些事件?

非常感谢,R。

虽然我不完全理解答案,但我感谢 parkydr、minitech 和任何其他可能已经停下来的人。

再次感谢,R。

4

1 回答 1

2

有焦点是指当你按下一个键时接收键盘输入的窗口。

焦点处理取决于您的窗口管理器。最常见的模式是单击聚焦,您的窗口管理器设置为该模式,您只有在单击窗口时才能获得焦点。另一种选择是键盘焦点跟随鼠标,这是您所期望的。

在您的窗口管理器设置中应该有一个设置来更改它。

光标改变并不表示焦点,只是终端定义了不同的光标。

为了演示,打开一个终端和一个 xev 窗口。

  • 单击 xev 窗口并按一个键,您将看到关键事件。
  • 将鼠标移动到终端窗口,您将看到动作和离开事件
  • 按一个键,您仍然会看到来自 xev 的关键事件
  • 点击终端窗口,xev 会给出一个focus out事件
  • 按一个键,字符将显示在终端窗口中
  • 将鼠标移到 xev 窗口上并按一个键,字符仍会出现在终端窗口中
于 2013-08-15T07:38:39.017 回答