2012-02-27 28 views
1

我正在写一个小程序来控制使用Xlib的鼠标光标。我需要在多显示器配置上任意设置它的位置。操作系统是Linux并启用了xinerama模式。在多显示器配置中使用xlib的鼠标控制

使用下面的代码,指针不工作,因为我期望。

xdisplay1 = XOpenDisplay(NULL);

root = DefaultRootWindow(xdisplay1);

XWarpPointer(xdisplay1,None,root,0,0,0,x,y);

XFlush(xdisplay1);

事件通常不会被刷新,除非我“手动摇动”鼠标设备。另外,它只有在我不窜入另一台显示器的情况下才有效。发生这种情况时,指针卡在相应的变形边缘。

这种行为导致我认为问题与多显示器配置有关。有谁知道如何快速解决它?

谢谢!

+0

鼠标光标不是“可视化”更新的,但现在我确定它正在移动。使用GLUT成功捕获鼠标事件。但是,知道这种奇怪行为的原因是很好的。谢谢! – antrox 2012-03-01 00:36:44

+0

你有没有找到这个解决方案?我有同样的问题... – joekr 2012-06-06 14:51:05

回答

0

它是不是最漂亮的解决方案,但呼吁

XDefineCursor(display,root_window,XCreateFontCursor(display, XC_circle)); 

似乎是一种解决方法。