2011-12-25 3 views
3

X11ですべてのマウスクリックイベントをキャプチャし、それらをC++アプリケーションに渡したいとします。私は、メインウィンドウの上に作られたクリックをキャプチャしたいだけでなく、メインウィンドウとは関係のないすべてのものをキャプチャしたいだけです。私はXGrabPointerを使って簡単にこれを達成できるようです。しかし、私はイベントをつかんでいないかのように、すべてのものが動作するようにしたい。つまり、私は、イベントが階層の下の他のクライアントへの彼らの通常の旅の上で継続することを望んでいます、私は単にイベントで詮索する最初のものになりたいです。私はイベントが「食べられる」ことを望んでいません。X11でマウスのクリックをすべてグローバルにキャプチャする方法は?

Google検索で問題が発生しても、明らかにすべてが壊れているか、推奨されていません。最も有望なのはXrecord + Xtestでしたが、これも廃止されたようです。

これは最近、Xinput2を使用して行う必要がありますが、それを使用する方法に関する情報は実際には稀です。私はいくつかの洞察に感謝します。

編集:私はまだこの回答が欲しいです!

+0

は、あなたがこの問題への解決策を見つけたことがありますか?私は同じことをしたいと思います。残念ながら、Windowsにはたくさんのソリューションがありますが、Linuxでは何もありません。 – Gerrit

+0

:<おそらくウェイランドはここへ行く道ですか? :D – Svenstaro

+0

@Svenstaroあなたは結局解決策を見つけましたか? –

答えて

0

私はkcolorchooserはそのとC

で書かれているかもしれない、それは参照価値があるん知っている: http://www.kde.org/applications/graphics/kcolorchooser/development

+0

kcolorchooseは、イベントが他のクライアントウィンドウに送信されていないので、明らかにポインタを取得します。 – Svenstaro

+0

ああ、あまりにも悪い、申し訳ありませんが解決策を与えていませんでした。 – TryTryAgain

0

たぶん、あなたはxevコードを見ている必要があります:それは想像一人ひとりXのイベントをキャプチャします。

+3

xevはフォーカスを当てずに入力をキャプチャすることもできません。 – Svenstaro

1

多少遅れていますが、開いているすべてのウィンドウにすべてのキーイベントをスヌープする「xkey」アプリケーション[1]を見てみることもできます。あなたがそのように行ったら、新しいウィンドウの作成を見たいと思うでしょう。

[1] http://www.stllinux.org/meeting_notes/1997/0619/xkey.html

+1

ここで[0]は、ウィンドウ作成処理(私のソリューションではない)を含む別のソリューションです。 [0] https://github.com/dustin/snippets/blob/master/c/X11/h/xkey.c – Gerrit

関連する問題