void XtRemoveGrab(w)
Widget w;
XtDispatchEvent がユーザイベントを配送しようとするとき、この 関数はモーダルカスケードを使用する。 少なくとも1つのモーダルウィジェットがウィジェットカスケードに含まれる とき、 XtDispatchEvent はイベントを送るかどうかを最初に決める。 この処理は、最も新しいカスケードのエントリーから始まり、exclusive パラ メータに True を指定して追加された最新のカスケードのエントリーまで(それ自身も含む)行 われる。
これらのウィジェットの全ての子孫を持つモーダルカスケードのサブセットは、 アクティブなサブセットを構成する。 このサブセットが含むウィジェットの外で起こったユーザイベントは、無視さ れるか再マップされる。 サブメニューを持つモーダルメニューは一般的に、 サブメニューウィジェットの exclusive に False をセットしてカスケードに追加する。 ユーザ入力を最も深くネストされたダイアログボックスに制限する必要がある モーダルダイアログボックスは、exclusive に True をセットしたサブダイアログウィジェットをカスケードに追加する。 アクティブなサブセット内で起こったセットユーザイベントは、アプリケーショ ンウィジェットに伝えられる。通常これはモーダルウィジェットの子か子孫で ある。
spring_loaded が True であるカスケードのアクティブなサブセットの、最も新しいウィジェットがあ る場合、このイベントがスクリーン上の起こった場所に関係なく、再マップイ ベトは必ずこのウィジェットに伝えられる。
関数 XtRemoveGrab は、モーダルカスケードからウィジェットを取り除く。これは最新のウィジェッ トから始められ、指定したウィジェット(それ自身も含む)まで行われる。 指定したウィジェットがモーダルカスケード上にない場合はエラーとなる。