[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

16. Event Loop

イベントループは Sawfish が認識する任意のウィンドウからのすべての X イベ ントを読みとります。これらの多くのイベントは 18. Standard Hooks で記述 されたフックを実行します。キーボードとポインタのイベントはそれらに同等な Lisp (コード)に翻訳( see section 13. Events )され、バインディングに対するすべて のアクティブなキーマップを検索するのに使われます。もしバインディングがみ つかれば、関連づけられたコマンドが call-command 関数を通じて実行 されます。

アクティブなキーマップは次のように定義されます:

ButtonRelease イベントについては、リリースイベントが起きた際にも しポインタが実際にフレームパーツ内にあれば、そのフレームパーツのキーマッ プだけが検索されることに注意しなければなりません。

もしどのアクティブなキーマップにもバインディングがみつからなければ、 unbound-key-hook フックが呼ばれます。これは or タイプのフッ クの一つで、最初の関数は nil でない値を返し、フック呼出しを終了します。

Function: lookup-event-binding event
イベントオブジェクト object のための通常のバインディングの検索を実 行します。みつかったコマンドか、バインディングが存在しなければ nil を返します。

デフォルトではキーリリースイベントもモディファイアキー(例えば Control_L)は両方とも無視されます。しかし、この動作は変更できます:

Variable: eval-modifier-events
もし nil でなければモディファイアキーに結びつけられたキーイベントが評価 されます。

Variable: eval-key-release-events
nil でなければキーリリースイベントが評価されます。

コマンドが評価されている間に生じるイベントの情報がみつけられます:

Function: current-event
実行される現在のコマンドを生じるイベントを返します。

Function: current-event-string
現在のイベントが普通挿入する文字列を返します。

Function: current-event-window
現在のイベントを受け取るウィンドウか、シンボル root か、 nil (もしそのようなウィンドウがなければ)を返します。

Function: last-event
前に起ったイベントを返します。

Function: proxy-current-event window &optional mask propagate
現在の X イベントを window (ウィンドウオブジェクトか、数値 ID か、 シンボル root )に送ります。もし ButtonPress イベントならば まずポインタグラブが解放されます。

mask は整数値で XSendEvent 関数に渡すための X イベントマス クを定義します。もし定義されていなければマスクは中継されるイベントタイプ を選択するのに通常使われるマスクが選択されます。

Function: allow-events mode
これは XAllowEvents のためのラッパーです。mode パラメータは 以下のシンボルの内のどれかです: async-pointer, async-keyboard, sync-pointer, sync-keyboard, replay-pointer, replay-keyboard, async-both, sync-both.

受け取るようにグラブされるべきイベント(すなわち、global-keymapwindow-keymap の中のすべてのバインディング)は同期的にグラブされま す。これはそのコマンドが返るまでか、allow-events が呼ばれるまでは それ以上イベントが受け取られないということを意味します。

これは通常重要ではありませんが、もしコマンドがさらにイベントを受け取るこ とを期待しているならば allow-events を呼ばなければいけないという ことです。例としては対話的な移動やリサイズ関数を参照して下さい。

Function: forget-button-press
次のボタン押下イベントが単なるクリックとして扱われ、前のボタン押下イベン トの後ではそれが無視されるようにします。

Function: accept-x-input &optional mask
受け取った任意の X イベントを処理します。もし mask が nil でないな らこの数値に一致するイベントのみを処理します(詳細については X のヘッダー ファイルを参照して下さい)。

Function: x-events-queued
処理されるのを待っている X イベントの数を返します。



This document was generated by SATO Satoru on October, 28 2000 using texi2html