Emacs 什么时候设置鼠标位置和鼠标位置不同?

Emacs 什么时候设置鼠标位置和鼠标位置不同?,emacs,elisp,Emacs,Elisp,我试图测试Emacs窗口的某个位置是否可见,从而既不会被另一个窗口重叠,也不会被装饰设施遮挡。为此,我将鼠标位置设置为某个点,然后将设置值与(鼠标位置)进行比较。然而,我得到了一些不同的值 实际的(鼠标位置)与设定值有何不同? (前提是用户确实不移动鼠标) 快速测试C-x C-e 对于pos-visible-in-window-p,这不会执行实际测试。看到这个 (progn (sleep-for 5) (pos-visible-in-window-p 1)) 使用C-u C-x C-e和更低

我试图测试Emacs窗口的某个位置是否可见,从而既不会被另一个窗口重叠,也不会被装饰设施遮挡。为此,我将鼠标位置设置为某个点,然后将设置值与
(鼠标位置)
进行比较。然而,我得到了一些不同的值

实际的
(鼠标位置)
与设定值有何不同? (前提是用户确实不移动鼠标)

快速测试C-x C-e

对于
pos-visible-in-window-p
,这不会执行实际测试。看到这个

 (progn (sleep-for 5) (pos-visible-in-window-p 1))
使用C-u C-x C-e和更低,隐藏窗口。唉,这仍然是真的。

看来这应该是你想要的


请注意,您的表达式移动了实际的鼠标指针,即用户可以看到它。

右侧,它移动了鼠标,实际上,我保存并恢复了原始的
鼠标像素位置
aroundirc,Emacs不知道这一点。它可能会知道它是否在屏幕上绘制了缓冲区的这一部分,但现在使用合成窗口管理器,应用程序通常必须绘制其窗口的每一部分,即使最后它们会被其他东西遮挡。另一种看待它的方式是:如果它被一个90%透明的窗口稍微遮住了怎么办?那么10%的透明窗口呢?@Stefan:至少我描述的方法是有效的(大部分)。它可以检测到许多异常,比如一些隐藏回波区域的条形图。不过,这并不完美。@Stefan:至于透明度,这要看情况而定。你还能把鼠标放在那个地方然后“拥有”鼠标吗?这正是与此相关的。因此,透明度本身并不是一个有趣的问题,只有那些你仍然可以做一些事情的地方才被考虑进去。
 (progn (sleep-for 5) (pos-visible-in-window-p 1))