XVisibilityNotifyEvent(3) VisibilityNotify イベント構造体

構造体

VisibilityNotify イベント構造体の内容を示す。

typedef struct {
     int type;                
     unsigned long serial;    
     Bool send_event;         
     Display *display;        
     Window window;
     int state;
} XVisibilityEvent;

このイベントを受け取ったとき、構造体の内容は以下のように設定されている。

type メンバには、イベントの型を一意に識別する定数名が設定される。 例えば、X サーバがクライアントアプリケーションに GraphicsExpose イベントを通知するとき、X サーバは type メンバに GraphicsExpose を設定した XGraphicsExposeEvent 構造体を送る。 display メンバには、イベントが読み出されたディスプレイへのポインタが 設定される。 send_event メンバには、このイベント自身が SendEvent プロトコルリクエストから送られてきた場合に True が設定される。 serial メンバは、プロトコルで通知されたシリアル番号を基に設定される。 ただし、最少桁の16ビットから完全32ビットの値に拡張される。 window メンバには、ツールキットのディスパッチャが最も便利に使える ウィンドウが設定される。

window メンバには、可視状態が変化したウィンドウが設定される。 state メンバには、ウィンドウの可視状態が設定される。 このメンバが取ることができる値は、 VisibilityUnobscured, VisibilityPartiallyObscured, VisibilityFullyObscured のいずれかである。 X サーバは、ウィンドウの可視状態を決定する際に、そのウィンドウの サブウィンドウは無視する。 また、X サーバは以下の手順で VisibilityNotify イベントを処理する。

  • ウィンドウの状態が、部分的に隠されている状態・完全に隠されている状態・ 表示不可能の状態から、表示可能かつ全く隠されていない状態に変化した場合、 X サーバは state メンバの値を VisibilityUnobscured とした XVisibilityEvent 構造体を生成する。
  • ウィンドウが表示可能かつ全く隠されていない状態や表示不可能の状態から、 表示可能かつ一部が隠された状態に変化した場合、X サーバは state メンバの値を VisibilityPartiallyObscured とした XVisibilityEvent 構造体を生成する。
  • ウィンドウが表示可能かつ全く隠されていない状態、表示可能かつ一部が隠されて いる状態、表示不可能かつ完全に隠されている状態から、表示可能であるが完全に 隠されている状態に変化した場合、X サーバは state メンバに VisibilityFullyObscured を設定した XVisibilityEvent 構造体を生成する。