首页 > 解决方案 > 鼠标拖动在 X 中发送按键(k​​eycode 54,keysym 字符“c”)

问题描述

这让我发疯了。昨天某个时候,我开始看到偶尔在窗户开关上按下“c”。如果我点击一个术语窗口,有时会出现一个“c”。重新安装一切后,即使在干净的机器上,我终于意识到它是用鼠标拖动。

为了重现,我启动了一个 xev 窗口并拖动窗口标题,我得到了这个:

FocusOut event, serial 38, synthetic NO, window 0x2400001,
    mode NotifyGrab, detail NotifyAncestor

ConfigureNotify event, serial 38, synthetic YES, window 0x2400001,
    event 0x2400001, window 0x2400001, (1087,844), width 178, height 178,
    border_width 2, above 0x0, override NO

ConfigureNotify event, serial 38, synthetic YES, window 0x2400001,
    event 0x2400001, window 0x2400001, (1091,844), width 178, height 178,
    border_width 2, above 0x0, override NO

...(more ConfigureNotify events)

FocusIn event, serial 38, synthetic NO, window 0x2400001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 38, synthetic NO, window 0x0,
    keys:  79  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeyPress event, serial 38, synthetic NO, window 0x2400001,
    root 0x4f, subw 0x0, time 64748101, (65,-12), root:(1164,834),
    state 0x10, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XmbLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2400001,
    root 0x4f, subw 0x0, time 64748101, (65,-12), root:(1164,834),
    state 0x10, keycode 54 (keysym 0x63, c), same_screen YES,
    XLookupString gives 1 bytes: (63) "c"
    XFilterEvent returns: False

如果我做得很快,我不会始终如一地看到它,但是如果我以 2 秒的间隔拖动,每次都会将“c”发送到窗口。

更多上下文: 1.我通过tigervnc连接到桌面,但我尝试了多个版本和配置,没有区别。它曾经完美地工作。2. Mate 或 XFCE 无所谓。我用一台新的干净的机器从头开始安装,没有区别。3.我的新旧机器之间肯定会同步一些点文件。但我认为我将所有内容一分为二,没有配置文件会影响行为。

我认为这是对其中一个 X 软件包的最新更新,通常会弄乱鼠标拖动,或者与 PRIMARY 剪贴板有关..但我不确定..

提前感谢您的任何建议!谢谢!

标签: linuxdrag-and-dropmouseeventclipboardkeyboard-events

解决方案


推荐阅读