GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Frame-Position.html ・ emacs-doc.conao3.com

30.3.3 フレーム位置

グラフィカルシステムでは、通常のトップレベルフレームの位置は、その外枠の絶対位置として指定されます(フレームジオメトリを参照)。子フレーム(子フレームを参照)の位置は、親フレームの本来の位置に対する外縁のピクセルオフセットによって指定されます。

フレームパラメータ left および top を使用して、フレームへのアクセスや位置の変更が可能です(位置パラメータ を参照)。ここでは、既存の可視フレームの位置を操作するための追加関数を2つ紹介します。どちらの関数においても、引数 frame はアクティブなフレームを指定する必要があり、デフォルトでは選択中のフレームが指定されます。

関数: frame-position &optional frame

通常の(子フレームではない)フレームの場合、この関数は、ディスプレイの原点 (0, 0) を基準とした外端位置のピクセル座標を含む cons を返します(フレームレイアウト を参照)。子フレーム(子フレーム を参照)の場合、この関数は、frame の親のネイティブ位置にある原点 (0, 0) を基準とした外端位置のピクセル座標を返します。

負の値は、frameのディスプレイまたは親フレームの右端や下端からのオフセットを示すものではありません。むしろ、frameの外位置が、ディスプレイの原点または親フレームのネイティブ位置よりも左側および/または上側にあることを意味します。これは通常、frameが部分的にしか表示されていない(あるいは完全に表示されていない)ことを示します。ただし、ディスプレイの原点が左上隅と一致しないシステムでは、フレームがセカンダリモニターに表示される場合があります。

テキスト端末フレームでは、ルートフレームの場合、両方の値が0となります(子フレームを参照)。

関数: set-frame-position frame x y

この関数は、frame の外側フレーム位置を (x, y) に設定します。後者の引数はピクセルを指定し、通常は frame のディスプレイ上の位置 (0, 0) を原点としてカウントします。子フレームの場合は、frame の親フレームの本来の位置からカウントされます。

負のパラメータ値を指定すると、外側フレームの右端は画面の右端(または親フレームのネイティブ矩形)から左に-xピクセル分、下端は画面の下端(または親フレームのネイティブ矩形)から上に-yピクセル分移動します。

なお、負の値では、frame の右端または下端を、ディスプレイや親フレームの右端または下端に正確に合わせることはできません。また、ディスプレイや親フレームの範囲内にない位置を指定することもできません。フレームパラメータ left および top(位置パラメータ を参照)ではそのような指定が可能ですが、初期フレームや新規フレームにおいては、依然として良好な結果が得られない場合があります。

この関数はテキスト端末フレームには影響しません。

変数: move-frame-functions

このフックは、ウィンドウシステムやウィンドウマネージャによってEmacsフレームが移動(新しい位置が割り当て)された際に実行される関数を指定します。これらの関数には、移動したフレームという1つの引数が渡されます。子フレーム(子フレームを参照)の場合、これらの関数は、親フレームに対するフレームの位置が変化したときにのみ実行されます。