[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
イベントループは Sawfish が認識する任意のウィンドウからのすべての X イベ
ントを読みとります。これらの多くのイベントは 18. Standard Hooks で記述
されたフックを実行します。キーボードとポインタのイベントはそれらに同等な
Lisp (コード)に翻訳( see section 13. Events )され、バインディングに対するすべて
のアクティブなキーマップを検索するのに使われます。もしバインディングがみ
つかれば、関連づけられたコマンドが call-command
関数を通じて実行
されます。
アクティブなキーマップは次のように定義されます:
override-keymap
が nil でなければこのキーマップだけ
が検索対象になります。
keymap
プロパティ
keymap
プロパティ
global-keymap
の内容
ButtonRelease
イベントについては、リリースイベントが起きた際にも
しポインタが実際にフレームパーツ内にあれば、そのフレームパーツのキーマッ
プだけが検索されることに注意しなければなりません。
もしどのアクティブなキーマップにもバインディングがみつからなければ、
unbound-key-hook
フックが呼ばれます。これは or
タイプのフッ
クの一つで、最初の関数は nil でない値を返し、フック呼出しを終了します。
nil
を返します。
デフォルトではキーリリースイベントもモディファイアキー(例えば Control_L)は両方とも無視されます。しかし、この動作は変更できます:
コマンドが評価されている間に生じるイベントの情報がみつけられます:
root
か、
nil
(もしそのようなウィンドウがなければ)を返します。
root
)に送ります。もし ButtonPress
イベントならば
まずポインタグラブが解放されます。
mask は整数値で XSendEvent
関数に渡すための X イベントマス
クを定義します。もし定義されていなければマスクは中継されるイベントタイプ
を選択するのに通常使われるマスクが選択されます。
XAllowEvents
のためのラッパーです。mode パラメータは
以下のシンボルの内のどれかです: async-pointer
,
async-keyboard
, sync-pointer
, sync-keyboard
,
replay-pointer
, replay-keyboard
, async-both
,
sync-both
.
受け取るようにグラブされるべきイベント(すなわち、global-keymap
と
window-keymap
の中のすべてのバインディング)は同期的にグラブされま
す。これはそのコマンドが返るまでか、allow-events
が呼ばれるまでは
それ以上イベントが受け取られないということを意味します。
これは通常重要ではありませんが、もしコマンドがさらにイベントを受け取るこ
とを期待しているならば allow-events
を呼ばなければいけないという
ことです。例としては対話的な移動やリサイズ関数を参照して下さい。