Leksykon IT › Programowanie › _NET_WM_MOVERESIZE

_NET_WM_MOVERESIZE

Programowanie Svenska → Zaktualizowano: 2026-10-09

Komunikat wysyłany przez aplikację, gdy użytkownik zaczął przeciągać coś, co aplikacja narysowała sama — pasek tytułu lub uchwyt zmiany rozmiaru — by menedżer okien przejął przenoszenie na własnych zasadach.

Przenoszenie okna to zadanie menedżera okien: trzyma przechwycenie wskaźnika, wie, gdzie są krawędzie ekranu i inne okna, i obsługuje przyciąganie, opór krawędzi oraz rysowanie obrysu. Ale uchwyt wewnątrz okna samej aplikacji — uchwyt zmiany rozmiaru w rogu paska stanu GTK albo pasek tytułu namalowany przez program — jest dla menedżera niewidoczny. EWMH pozwoliło aplikacji przekazać sprawę: po naciśnięciu przycisku wysyła do okna głównego ClientMessage typu _NET_WM_MOVERESIZE ze współrzędnymi wskaźnika na ekranie, informacją, który przycisk jest wciśnięty, i kierunkiem: 0–7 dla ośmiu krawędzi i rogów albo 8 dla zwykłego przesunięcia. Menedżer okien przejmuje wtedy przechwycenie i działa tak, jakby przeciąganie zaczęło się w jego własnej ramce.

Warianty klawiaturowe doszły później — uruchamiają te same tryby co Alt+F7 i Alt+F8 w tradycji mwm — razem z _NET_WM_MOVERESIZE_CANCEL do przerywania. Przez lata komunikat był ciekawostką dla uchwytów zmiany rozmiaru, ale stał się kluczowy, gdy dekoracje po stronie klienta wystartowały: każde okno GTK 3 z headerbarem i każde okno Chrome z własnym paskiem tytułu jest przesuwane tym wywołaniem, a bez niego każda aplikacja musiałaby wymyślić własne, szarpane przeciąganie okien. Wayland przejął wzorzec bez zmian jako xdg_toplevel.move i resize, z tym samym przekazaniem trwającego naciśnięcia.

← Wróć do leksykonu