The X server searches the ancestors of w from the root down,
looking for a passive grab to activate.
If no matching passive grab on the button exists,
the X server automatically starts an active grab for the client receiving
the event and sets the last-pointer-grab time to the current server time.
The effect is essentially equivalent to an
XGrabButton()
with these client passed arguments:
X サーバーは、アクティブになるパッシブグラブを探して、ルートの下へ w の上位階層ウインドウを検索する。
もし、ボタンに関連するパッシブグラブがない場合は、X サーバーは自動的にクライアントがイベントを受け取るためのアクティブグラブを始動して現在のサーバー時間に最終ポインタグラブ時刻を設定する。
結果は、本質的にクライアントが
XGrabButtonに以下の引数を渡したことに相当する:
Argument | Value
w | The event window
| event_mask | The client's selected pointer events on the event window
| pointer_mode | GrabModeAsync
| keyboard_mode | GrabModeAsync
| owner_events | True, on the event window, otherwise False
| confine_to | None
| cursor | None
| |
The active grab is automatically terminated when
the logical state of the pointer has all buttons released.
Clients can modify the active grab by calling
XUngrabPointer()
and
XChangeActivePointerGrab().
ポインターの論理的な状態がすべてのボタンが解放された時に、アクティブなグラブは、自動的に終了される。
クライアントは
XUngrabPointer、および
XChangeActivePointerGrabを呼ぶことによってアクティブグラブを変更することができる。