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


28.15 専用のウィンドウ

特定のウィンドウがそのウィンドウのバッファーにたいして専用(dedicated)であるとマークすることにより、バッファーを表示する関数にそのウィンドウを使用しないように告げることができます。display-buffer (Choosing Windowを参照)は、他のバッファーの表示に専用バッファーを決して使用しません。 get-lru-windowget-largest-window (Cyclic Window Orderingを参照)は、dedicated引数が非nilのときは専用ウィンドウを候補とはみなしません。専用ウィンドウにたいする配慮に関してset-window-buffer (Buffers and Windowsを参照)の挙動は若干異なります。以下を参照してください。

ウィンドウからのバッファー削除、およびフレームからのウィンドウ削除を意図した関数は、処理するウィンドウが専用ウィンドウのときは特別な挙動を示す可能性があります。ここでは3つの基本ケース、すなわち(1)そのウィンドウがフレーム上で唯一のウィンドウの場合、(2)ウィンドウはフレーム上で唯一のウィンドウだが同一端末上に別のフレームがある場合、(3)そのウィンドウが同一端末上で唯一のフレームの唯一のウィンドウの場合、を明確に区別することにします。

特にdelete-windows-on (Deleting Windowsを参照)は関連するフレームを削除する際にケース(2)を、フレーム上で唯一のウィンドウに他のバッファーを表示する際にケース(3)を処理します。バッファーがkillされる際に呼び出される関数replace-buffer-in-windows(Buffers and Windowsを参照)は、ケース(1)ではウィンドウを削除して、それ以外ではdelete-windows-onのように振る舞います。

bury-buffer (Buffer Listを参照)が選択されたウィンドウを操作する際は、選択されたフレームを処理するためにframe-auto-hide-function (Quitting Windowsを参照)を呼び出すことによってケース(2)を取り扱います。他の2つのケースはreplace-buffer-in-windowsと同様に処理されます。

Function: window-dedicated-p &optional window

この関数はwindowがそのバッファーにたいして専用なら非nil、それ以外はnilをリターンする。より正確には最後のset-window-dedicated-p呼び出しで割り当てられた値、set-window-dedicated-pwindowを引数として呼び出されたことがなければnilがリターン値となる。windowのデフォルトは選択されたウィンドウ。

Function: set-window-dedicated-p window flag

この関数はflagが非nilならwindowがそのバッファーに専用、それ以外は非専用とマークする。

特別なケースとしてflagtの場合には、windowはそのバッファーにたいして特に専用(strongly dedicated)になる。set-window-bufferは処理対象のウィンドウが特に専用のウィンドウで、かつ表示を要求されたバッファーが表示済みでなければエラーをシグナルする。その他の関数はtを他の非nil値と区別して扱わない。

適切なdedicatedアクションalistエントリー(Buffer Display Action Alistsを参照)を与えることにより、display-bufferが作成するウィンドウにたいしてそのバッファー専用であるとマークするよう指示することもできます。