元のフォーカスを失わずにキープレスイベントをトラップする xlib 関数を知っている人はいますか? それを取り除く方法は?
(または、「Grab スタイルの focusout を生成せずに XGrabKey() を使用するには」?)
(または「システム レベルで NotifyGrab および NotifyUngrab フォーカス イベントを取り除く方法は?)
XGrabKey は、押されたキーにフォーカスを失い、離されたキーにフォーカスを戻します。
そして、キープレスを元のウィンドウに漏らさずにトラップしたい(XGrabKeyができるように)。
参考文献:
...XGrabKey はフォーカスを奪います... https://bugs.launchpad.net/gtkhotkey/+bug/390552/comments/8
...プログラムは、キーの組み合わせに応じて何かを行うための制御を受け取ります。その間、プログラムは一時的にフォーカスされています... XGrabKey(ボード)中に、どのウィンドウがフォーカスされていたかを発見します
... XGrabKeyboard 関数は、アクティブにキーボードの制御を取得し、FocusIn および FocusOut イベントを生成します... http://www.x.org/archive/X11R6.8.0/doc/XGrabKeyboard.3.html#toc3
...メタシティの現在のデスクトップ変更動作 (ポップアップ ダイアログの変更と表示を同時に) を提供する方法が、ウィンドウに Grab タイプのフォーカスを発生させずに提供する方法がわかりません... https://mail.gnome .org/archives/wm-spec-list/2007-May/msg00000.html
...NotifyGrab を使用した FocusOut イベントでフルスクリーン モードを終了しないでください... https://bugzilla.mozilla.org/show_bug.cgi?id=578265
キーボードをつかんでもフォーカスを変更できません ... キーボードをつかんでもフォーカスを変更できません
グラブによって生成されるフォーカス イベント (XGrabKeyboard のアクティブ グラブと XGrabKey のパッシブ グラブの両方) http://www.x.org/releases/X11R7.6/doc/libX11/specs/libX11/libX11.html#Focus_Events_Generated_by_Grabs
XGrabKey ソース コード: http://cgit.freedesktop.org/xorg/lib/libX11/tree/src/GrKey.cこれを変更して、フォーカス アウト イベントをなくすことはできますか?
「DoFocusEvents(keybd、oldWin、grab->window、NotifyGrab);」があります。ActivateKeyboardGrab(): http://cgit.freedesktop.org/xorg/xserver/tree/dix/events.c
キーの組み合わせ(およびマウスの動き)マッピングソフトウェアへのワンキーストロークを書いています:https://code.google.com/p/diyism-myboard/
RegisterHotKey() と UnRegisterHotKey() を使用して Windows で実現しました: https://code.google.com/p/diyism-myboard/downloads/detail?name=MyBoard.pas
そして、XGrabKey() と XUngrabKey() を使用して Linux に移行したい: https://code.google.com/p/diyism-myboard/downloads/detail?name=myboard.py
この問題を解決するために $10 の報奨金を作成しました。バウンティを配置するには、より多くの支援者が必要です。 https://www.bountysource.com/issues/1072081-right-button-menu-flashes-while-jkli-keys-move-the-mouse-pointer