我目前正在使用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()。有什么想法吗?
答案 0 :(得分:1)
要执行此操作,您必须从服务器获取控件。然后窗口管理器被排除在处理链之外。最舒适的方法是使用libSDL。它为全屏OpenGL应用程序创建了适当的上下文,比Xlib + GLX更容易处理。