Previous: , Up: Frame Geometry   [Contents][Index]


28.3.4 Implied Frame Resizing

たとえばメニューバーの追加や削除、デフォルトフォントの変更、フレームのスクロールバーの幅のセットの際、Emacsはデフォルトではフレームのテキストエリアの行数と列数を未変更に保つように試みます。しかしこれはそのような場合のサイズ変更を調停するために、Emacsがウィンドウマネージャーに依頼しなければならないことを意味します。メニューバーやツールバーのでは、通常はフレームのフレームサイズをリサイズしないので、表示される行数に変更はないことに注意してください。

たとえばフレームの最大化や全画面化の際のように、そのような暗黙なフレームのリサイズ(implied frame resizing)がおそらく望ましくないケースもあります(デフォルトではオフになっている)。それ以外のケースでは以下のオプションで暗黙のリサイズを無効にできます。

User Option: frame-inhibit-implied-resize

このオプションがnilならフレームが表示する列数と行数を確保するために特定フレームのフォント、メニューバー、ツールバー、インターナルボーダー、フリンジ、スクロールバーの変更によってフレームのディスプレーエリアを暗黙に変更できる。このオプションが非nilなら暗黙のリサイズは行われない。

このオプションの値はフレームパラメーターのリストかもしれない。この場合には、このリスト内に出現するパラメーター変更時の暗黙のリサイズは抑制される。このオプションで処理されるフレームパラメーター現在のところfontfont-backendinternal-border-widthmenu-bar-linestool-bar-lines

フレームパラメーターscroll-bar-widthscroll-bar-heightvertical-scroll-barshorizontal-scroll-barsleft-fringeright-fringeのいずれかにたいする変更は、あたかもそのフレームが単一の生きたウィンドウを含むかのように処理される。これはたとえば複数の横並びのウィンドウをフレームで垂直スクロールバーを削除すると、このオプションがnilならnilはスクロールバーの幅の分だけ縮小されて、tvertical-scroll-barsを含む場合には未変更に保たれることを意味する。

デフォルト値はLucid、Motif、Windowsにたいしては'(tool-bar-lines) (ツールバーの追加や削除でアウターフレーム高さを変更しない)、GTK+を含むその他のウィンドウシステムではnil (上述したすべてのパラメーターの変更によりアウターフレームのサイズは変更され得る)、それ以外ならt (ウィンドウシステムのサポートがないときには暗黙に変更が行われることはない)。

フレームが上述のいずれかのパラメーターにたいする変更の調停に不十分な際には、たとえこのオプションが非nilでもEmacsがフレームの拡大を試みるかもしれないことに注意。