XMapWindow(3) ウィンドウをマップする

Other Alias

XMapRaised, XMapSubwindows

書式

XMapWindow(display, w)

      Display *display;

      Window w;

XMapRaised(display, w)

      Display *display;

      Window w;

XMapSubwindows(display, w)

      Display *display;

      Window w;

引き数

display
X サーバへの接続を指定する。
w
ウィンドウを指定する。

説明

関数 XMapWindow は指定したウィンドウをマップする。同時に、そのウィンドウのサブウィンド ウで既にマップリクエストを受けているものも全てマップする。 アンマップされている祖先を持つウィンドウをマップしても表示されない。し かし、その祖先がマップされた時に表示される資格を持つものと印がつけられ る。 このようなウィンドウを表示不可能(unviewable)であると言う。 全ての祖先がマップされている時、そのウィンドウは表示可能になり、他のウィ ンドウに隠されていなければスクリーン上で見えるようになる。 ウィンドウが既にマップされている場合、この関数は何もしない。

指定したウィンドウの override-redirect 属性が False で、かつその親ウィンドウで他のクライアントが SubstructureRedirectMask を選択している場合には、X サーバは MapRequest イベントを生成し、 関数 XMapWindow はウィンドウをマップしない。 それ以外の場合には、ウィンドウはマップされ、X サーバは MapNotify イベントを生成する。

そのウィンドウが表示可能になり、以前の表示内容が記憶されていない場合に は、 X サーバはその部分を背景色で塗りつぶす。 ウィンドウの背景色が定義されていない場合、スクリーンに表示されている内 容は変化せず、X サーバは0個以上の Expose イベントを生成する。 ウィンドウがアンマップされている間もバッキングストアが保持されていれば、 Expose イベントは生成されない。 これ以降バッキングストアが保持されるならば、ウィンドウ全体の露出イベン トは必ず生成される。 そうでない場合には、可視領域だけが通知される。 同様の塗りつぶしと露出は新しく表示可能になった下位ウィンドウの全てにつ いて行われる。

ウィンドウが InputOutput のウィンドウであれば、 XMapWindow は表示される InputOutput ウィウドウのそれぞれに対して Expose イベントを発生させる。 クライアントがマップ動作とウィンドウの描画を行い、イベントの処理も始め ると、ウィンドウは2度描画される。 これを避けるためには、最初に Expose イベントの問い合わせをしてからウィンドウをマップすればよい。そうすれば クライアントは入力イベントを普通に処理する。 イベントリストはスクリーンにあらわれた各ウィンドウに対する Expose を持つ。 クラアントは Expose イベントを受け取った場合、通常はウィンドウの再描画を行うべきである。 通常はこうすることでプログラムが簡単になり、ウィンドウマネージャとも適 切なやりとりができる。

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

関数 XMapRaised は、指定したウィンドウと全てのサブウィンドウ(既にマップリクエストを受 け取っているもの)をマップする点において XMapWindow と本質的に同じである。 ただし、この関数は指定したウィンドウをウィンドウスタックの先頭に上昇さ せる。

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

関数 XMapSubwindows は、指定したウィンドウのサブウィンドウ全部を上から下のスタック順にマップする。 X サーバは新しく表示されたウィンドウのそれぞれに Expose イベントを発生させる。 これは多くのウィンドウを1つずつマップするよりもずっと効率的である。な ぜなら X サーバは、全てのウィンドウを相手に処理を一度だけ行うだけで済 み、各々のウィンドウひとつひとつに対応しなくてよいからである。

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

返り値

BadWindow
引き数 Window の値が、定義されている Window を指していない。