如何在X(Xlib)中禁用自动中键单击鼠标事件?

时间:2010-02-25 13:23:08

标签: linux mouseevent x11

我目前正在使用C在X11中实现一个程序。我得到了处理右键和左键单击事件的程序,但是中键单击会产生问题。看来我的窗口管理器(Unntu 9.10上的Gnome)认为如果不是只进行一次中键点击,而是应该进行一系列其他点击,这样做会更好。我假设它与用于复制粘贴的中间点击有关。我真的不想要这个,因为我正在用OpenGL制作一个全屏幕应用程序,这样的事情是不合适的。有没有办法让鼠标中键像任何其他按钮一样工作?

我目前的代码是这样的:

switch(currentXEvent.type) {
    case ButtonPress:
        switch(currentXEvent.xbutton.button) {
            case 1:
                leftMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
                break;
            case 2:
                middleMouseButton(currentXEvent.xbutton.x, currentXEvent.xbutton.y);
                break;
        }
}

我的困难在于它的行为就像是按下了leftMouseButton()。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

要执行此操作,您必须从服务器获取控件。然后窗口管理器被排除在处理链之外。最舒适的方法是使用libSDL。它为全屏OpenGL应用程序创建了适当的上下文,比Xlib + GLX更容易处理。