Next: , Previous: , Up: Frames   [Contents][Index]


30.12 フレームのraise、lower、re-stack

ほとんどのウィンドウシステムではデスクトップというメタファー(metaphor: 比喩的概念)が使用されています。このメタファーの一部はシステムレベルのウィンドウ(Emacsではフレーム)がスクリーン表面に向かって、概念的3次元の垂直方向にスタッキングされる(重ねて表示される)というアイデアにもとづいています。スタッキングによる順序は合計であり、通常はスタッキングの順序(またはZオーダー)として参照されます。2つのゥィンドウがオーバーラップする領域では、このオーダーにおいて高位のウィンドウが、下位のウィンドウ(の一部)をカバーします。

関数raise-framelower-frameを使用してフレームのZオーダーの一番上にraiseしたり一番下にlowerすることができます。関数frame-restackを使用すれば別のフレームの上や下にフレームを直接restackできます。

以下で説明するすべての関数はフレーム(および他のウィンドウシステムのウィンドウすべて)の対応するZグループを尊重することに注意してください(Position Parametersを参照)。たとえば通常はフレームをデスクトップウィンドウよりlower(下位)にすることや、z-groupパラメータ0が非nilのフレームをウィンドウシステムのタスクバーやツールチップウィンドウよりraise(上位)にすることはできません。

Command: raise-frame &optional frame

この関数はをframeのz-groupと同じかlower(下位)にある他のすべのフレームの上位にフレームframe (デフォルトは選択されたフレーム)をraiseする。frameが不可視やアイコン化されていたら可視になる。frameが子フレーム(Child Framesを参照)なら、親フレームの他のすべての子フレームの上位にframeをraiseする。

Command: lower-frame &optional frame

この関数はをframeのz-groupと同じか上位にある他のすべのフレームの下位へフレームframe (デフォルトは選択されたフレーム)をlowerにする。frameが子フレーム(Child Framesを参照)なら、親フレームの他のすべての子フレームの下位にframeをlowerする。

Function: frame-restack frame1 frame2 &optional above

この関数はframe2の下にframe1を再スタックする(restack: 再び重ねる)。いずれのフレームも可視で表示エリアがオーバーラップしていたら、frame2frame1を(部分的に)隠すことを暗に示している。オプションの3つ目の引数aboveが非nilなら、この関数はframe2の上にframe1を再スタックする。これはいずれのフレームも可視で表示エリアがオーバーラップしていたら、frame1frame2を(部分的に)隠すことを意味している。

この関数は最初のステップではディスプレイからframe1のウィンドウシステムのウィンドウを削除して、2つ目のステップで( aboveが真なら)frame2のウィンドウの下にframe1のウィンドウを再挿入を行う、2つのステップによりアトミックなアクションを処理すると技術的に考えることができる。したがってframe1を除く他のすべてのフレームに相対的なframe2のディスプレイ内でのZオーダー(スタッキングオーダー)は変更されない。

いくつかのウィンドウマネージャーはウィンドウの再スタックを拒絶する。

再スタックの効果は関連するフレームがアイコン化されたり不可視になったりしないかぎり継続することに注意してください。フレームを他のフレームの上位(や下位)に永続的に表示されるフレームグループに追加するためにフレームパラメーターz-group (Position Parametersを参照)を使用できます。これらのグループのいずれかにフレームが所属するかぎり、再スタックはそのグループ内での相対的なスタッキング位置にのみ効果があります。異なるZグループに所属するフレームにたいする再スタックの効果は未定義です。関数frame-list-z-orderでカレントのフレームスタッキングオーダーをリストできます(Finding All Framesを参照)。

User Option: minibuffer-auto-raise

これが非nilならミニバッファーをアクティブにすることにより、ミニバッファーウィンドウのあるフレームが前面に移動される。

ウィンドウシステム上ではフレームパラメーターを使用して、(フレーム選択時に)auto-raising、(フレーム選択解除時に)auto-loweringを有効にできます。Management Parametersを参照してください。

フレームを前面や背面に移動するという概念は、テキスト端末のフレームにも適用できます。各テキスト端末上では一度に表示されるのは常に最前面のフレームだけです。

Function: tty-top-frame &optional terminal

この関数はterminal上の最前面のフレームをリターンする。terminalは端末オブジェクト、フレーム(そのフレームの端末を意味する)、またはnil (選択されたフレームの端末を意味する)であること。これがテキスト端末を参照しなければリターン値はnil