10.11.1 CirculateRequest Events

The X server can report CirculateRequest events to clients wanting information about when another client initiates a circulate window request on a specified window. The X server generates this event type whenever a client initiates a circulate window request on a window and a subwindow actually needs to be restacked. The client initiates a circulate window request on the window by calling XCirculateSubwindows(), XCirculateSubwindowsUp(), or XCirculateSubwindowsDown().
X サーバーは他のクライアントが指定したウインドウでウインドウ循環(circulate) リクエストを起こす時にその情報を要求しているクライアントに CirculateRequest イベントを通知する。 X サーバーはクライアントがウインドウとサブウインドウで実際に再スタック(restack)する必要があるウインドウ循環(circulate)リクエストを起こす時は必ずこのイベント型(type)を発生する。 クライアントが XCirculateSubwindows(), XCirculateSubwindowsUp(), XCirculateSubwindowsDown() のいずれかを呼ぶ事でウインドウにウインドウ循環(circulate)リクエストを起こす。

To receive CirculateRequest events, set the SubstructureRedirectMask in the event-mask attribute of the window. Then, in the future, the circulate window request for the specified window is not executed, and thus, any subwindow's position in the stack is not changed. For example, suppose a client application calls XCirculateSubwindowsUp() to raise a subwindow to the top of the stack. If you had selected SubstructureRedirectMask on the window, the X server reports to you a CirculateRequest event and does not raise the subwindow to the top of the stack.
CirculateRequest イベントを受け取るには、 ウインドウの イベントマスク 属性の SubstructureRedirectMask ビットを設定する。 これにより以降、 特定のウインドウでのウインドウ循環(circulate)リクエストは実行されず、 故にスタックの中のいかなるのサブウインドウの位置も変更されない。 例えば、 クライアントアプリケーションがサブウインドウをスタックのトップに上げるために XCirculateSubwindowsUp() を呼ぶと想定した場合、 ウインドウで SubstructureRedirectMask が選択せれていれば、 X サーバーはあなたにイベントを通知し、 サブウインドウをスタックのトップに上げない。

The structure for this event type contains:
このイベントのための構造体を以下に示す:


typedef struct {
	int type;		/* CirculateRequest */
	unsigned long serial;	/* # of last request processed by server */
	Bool send_event;	/* true if this came from a SendEvent request */
	Display *display;	/* Display the event was read from */
	Window parent;
	Window window;
	int place;		/* PlaceOnTop, PlaceOnBottom */
} XCirculateRequestEvent;

The parent member is set to the parent window. The window member is set to the subwindow to be restacked. The place member is set to what the new position in the stacking order should be and is either PlaceOnTop or PlaceOnBottom. If it is PlaceOnTop, the subwindow should be on top of all siblings. If it is PlaceOnBottom, the subwindow should be below all siblings.
parent メンバーには親ウインドウが設定される。 window メンバーには再スタックされるサブウインドウが設定される。 place メンバーには PlaceOnTop あるいは PlaceOnBottom のスタック順序の新しい位置が設定される。 PlaceOnTop ならばサブウインドウはすべての兄弟ウインドウの上にあるべきだ。 PlaceOnBottom, ならばサブウインドウはすべての兄弟ウインドウの下にあるべきだ。

Next: ConfigureRequest Events

Christophe Tronche, ch.tronche@computer.org