1
  1. プログラムがXGrabKey()を呼び出して、ホットキーを作成しました。
  2. ユーザーがそのキーの組み合わせを押します(別のウィンドウがフォーカスされている間)。
  3. プログラムは、キーの組み合わせに応じて何かを実行するための制御を受け取ります。その間、プログラムは一時的に焦点を合わせられました(XGrabKeyの効果のため(、を参照man XGrabKeyman XGrabKeyboard)。

プログラムで、元々フォーカスされていたウィンドウに対して合成Xイベント(キー押下またはマウスクリック)を作成する必要があります。場合によっては、これは、イベントを送信する前にそのウィンドウにフォーカスする必要があることを意味します(Firefoxは、フォーカスされていない場合、合成イベントを無視します)。つまり、ウィンドウがどのウィンドウであるかを知る必要があります。それがどのウィンドウであるかをどのように知ることができますか?

4

1 に答える 1

0

FocusOut次のイベントを待ち、modeがに設定されていることを確認し、NotifyUngrabでフォーカスを取得しXGetInputFocus()て、合成イベントを送信します。

于 2012-11-23T22:07:12.373 に答える