XRestackWindows(3) ウィンドウのスタック順を変更する

Other Alias

XRaiseWindow, XLowerWindow, XCirculateSubwindows, XCirculateSubwindowsUp, XCirculateSubwindowsDown

書式

XRaiseWindow(display, w)

      Display *display;

      Window w;

XLowerWindow(display, w)

      Display *display;

      Window w;

XCirculateSubwindows(display, w, direction)

      Display *display;

      Window w;

      int direction;

XCirculateSubwindowsUp(display, w)

      Display *display;

      Window w;

XCirculateSubwindowsDown(display, w)

      Display *display;

      Window w;

XRestackWindows(display, windows, nwindows);

      Display *display;

      Window windows[];

      int nwindows;

引き数

direction
ウィンドウを移動させる方向(上か下)を指定する。 RaiseLowestLowerHighest を指定する。
display
X サーバへの接続を指定する。
nwindows
再スタックされるウィンドウの数を指定する。
w
ウィンドウを指定する。
windows
再スタックされるウィンドウの配列を指定する。

説明

関数 XRaiseWindow は指定したウィンドウが兄弟ウィンドウに隠されないように、スタックの 最上位に持ち上げる。 ウィンドウを机の上で重なりあっている紙として考えると、ウィンドウを持ち 上げることは、その紙を重なった紙の一番上に移動させることに例えられるが、 机の上での x, y 座標は変わらない。 マップされているウィンドウを持ち上げた場合、それまで隠されていたその ウィンドウとマップされているサブウィンドウでは Expose イベントが発生する。

ウィンドウの override-redirect 属性が False であり、かつ親ウィンドウの SubstructureRedirectMask を選択しているウィンドウが他にある場合、X サーバは ConfigureRequest イベントを生成し、処理を行わない。

XRaiseWindow はエラー BadWindow を起こすことがある。

関数 XLowerWindow は他の兄弟ウィンドウを隠さないように、指定したウィンドウをスタックの 最下位に下げる。 ウィンドウを机の上で重なりあっている紙として考えると、ウィンドウを下げ ることは、その紙を重なりあった紙の一番下に移動させることに例えられるが、 机の上での x, y 座標は変わらない。 マップされているウィンドウを下げた時、それまで陰になっていた全ての ウィンドウで Expose イベントが起こる。

ウィンドウの override-redirect 属性が False であり、親ウィンドウの SubstructureRedirectMask を選択しているウィンドウが他にある場合、X サーバは ConfigureRequest イベントを生成し、処理を行わない。 そうでない場合には、ウィンドウはスタックの最下位に下げられる。

XLowerWindow はエラー BadWindow を起こすことがある。

関数 XCirculateSubwindows は指定したウィンドウの子ウィンドウを指定した向きに循環させる。 RaiseLowest を指定した場合は、 XCirculateSubwindows は他の子ウィンドウに隠されている、最も下にある子ウィンドウ(もしあれば) を持ち上げる。 LowerHighest を指定した場合は、 XCirculateSubwindows は他の子ウィンドウを隠している、最も上にある子ウィンドウ(もしあれば)を 下げる。 その後、それまで他のウィンドウの陰になっていたウィンドウに対して露出の 処理が行われる。 親ウィンドウの SubstructureRedirectMask を選択しているウィンドウが他にある場合、X サーバは CirculateRequest イベントを生成し、それ以上の処理を行わない。 子ウィンドウが実際に再スタックされた場合、X サーバは CirculateNotify を生成する。

XCirculateSubwindows はエラー BadValue, BadWindow を起こすことがある。

関数 XCirculateSubwindowsUp は指定したウィンドウの最下位のマップされている子ウィンドウで、一部 あるいは全体が他の子ウィンドウに隠されているものを持ち上げる。 全く隠されていない子ウィンドウは影響を受けない。 これは、 RaiseLowest を指定した XCirculateSubwindows と等価な簡易関数である。

XCirculateSubwindowsUpBadWindow を起こすことがある。

XCirculateSubwindowsDown は指定したウィンドウの最上位のマップされている子ウィンドウで、他の 子ウィンドウ一部あるいは全体を隠しているものを下位に移動させる。 完全に隠れているウィンドウは影響を受けない。 これは LowerHighest を指定した XCirculateSubwindows と等価な簡易関数である。

XCirculateSubwindowsDown はエラー BadWindow を起こすことがある。

関数 XRestackWindows は指定した順序(上位から下位の順で指定)でウィンドウをスタック順を 変更する。 ウィンドウの配列の最初のウィンドウのスタック順は通常通りであるが、 配列中の他のウィンドウは最初のウィンドウの下にスタックされる。 他のウィンドウのスタック順は通常通りである。 配列中に指定したウィンドウの子ウィンドウでないものがある場合、それぞれ に対して BadMatch エラーが起こる。

ウィンドウの override-redirect 属性が False であり、親ウィンドウの SubstructureRedirectMask を選択しているウィンドウが他にある場合、X サーバは override-redirect フラグがセットされていないウィンドウ全てに対して CirculateRequest イベントを生成し、それ以上の処理を行わない。 そうでない場合には、ウィンドウは上位から下位の順でスタック順が 変更される。

XRestackWindows はエラー BadWindow を起こすことがある。

返り値

BadValue
指定された数値に、リクエストの許容範囲を越えているものがある。引き数に対 して特定の範囲が指定されていなければ、引き数の型で定義されている全ての範 囲が許される。選択肢として定義されている引き数はこのエラーを起こすことが ある。
BadWindow
引き数 Window の値が、定義されている Window を指していない。