2012-02-27 6 views
1

私はXlibを使用してマウスカーソルを制御する小さなプログラムを作成しています。私はマルチディスプレイ構成でその位置を任意に設定する必要があります。 OSはLinuxで、xineramaモードが有効になっています。マルチディスプレイ構成でxlibを使用したマウスコントロール

以下のコードを使用すると、期待通りにポインタが機能しません。

xdisplay1 = XOpenDisplay(NULL);

root = DefaultRootWindow(xdisplay1);

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

XFlush(xdisplay1);

マウスデバイスを「手動で振る」以外のイベントは、一般にはフラッシュされません。さらに、私は別のモニターにワープしない場合にのみ動作します。これが起こると、ポインタは対応するワーピングのエッジでスタックされます。

この現象は、この問題がマルチディスプレイ構成に関連していると思うようになりました。すぐにそれを解決する方法を知っている人はいますか?

ありがとうございます!

+0

マウスカーソルは「視覚的に」更新されていませんが、今は移動していると確信しています。マウスイベントはGLUTを使用して正常に捕捉されます。しかし、この奇妙な行動の理由を知ることは良いことです。ありがとう! – antrox

+0

あなたはこれの解決策を見つけましたか?私は同じ問題を抱えています... – joekr

答えて

0

それはきれいな解決策ではなく、

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

を呼び出すと回避策のようです。

関連する問題