IT用語集 › プログラミング › _NET_WM_MOVERESIZE

_NET_WM_MOVERESIZE

プログラミング Svenska → 更新: 2026-10-22

アプリが自前で描いた部分(タイトルバーやリサイズグリップ)のドラッグが始まったとき送るメッセージ。以後の移動はウィンドウマネージャが自分の規則で引き継ぐ。

ウィンドウの移動はウィンドウマネージャの仕事だ。ポインタを掴み、画面端や他のウィンドウの位置を知っていて、スナップ、端の抵抗、輪郭の描画を担う。ところがアプリ自身のウィンドウ内にあるつまみ、たとえばGTKのステータスバー隅のリサイズグリップや、プログラムが自前で描いたタイトルバーは、ウィンドウマネージャには見えない。EWMHはここで引き継ぎを可能にした。ボタンが押されたとき、アプリは型 _NET_WM_MOVERESIZE の ClientMessage をルートウィンドウへ送る。内容は画面座標のポインタ位置、押されているボタン、方向(0〜7は八つの辺と角、8は単なる移動)である。ウィンドウマネージャは掴みを引き取り、自分のフレームでドラッグが始まったかのように続行する。

後にキーボード版が加わり、mwm 流の Alt+F7 と Alt+F8 と同じモードを開始できるようになり、中止用の _NET_WM_MOVERESIZE_CANCEL も追加された。長らくリサイズグリップ用の珍品だったが、クライアントサイド装飾が普及すると中心的な存在になった。ヘッダバーを持つGTK 3のウィンドウも、自前のタイトルバーを描くChromeのウィンドウも、この呼び出しで動く。無ければ各アプリが、ぎくしゃくした独自のドラッグを発明する羽目になっただろう。Waylandは、進行中の押下を引き渡すこのパターンをそのまま xdg_toplevel の move と resize に持ち込んだ。

← 用語集に戻る