IT-lexikon › Programmering › _NET_FRAME_EXTENTS

_NET_FRAME_EXTENTS

Programmering In English → Uppdaterad: 2026-10-09

EWMH-egenskapen som talar om för ett program hur tjock ram fönsterhanteraren lagt runt det, så att det kan räkna ut var på skärmen det faktiskt är.

Under en reparenting-fönsterhanterare är programmets fönster ett barn till ramen, och alla koordinater programmet får ur XGetGeometry är relativa den. Programmet ser varken titelraden eller kanterna och kan inte veta var dess övre vänstra hörn ligger på skärmen utan att vandra uppåt i fönsterträdet och addera. Många lät bli, vilket gav den klassiska buggen där ett program som sparar sin position och återställer den nästa gång kryper en titelradshöjd nedåt vid varje start. ICCCM:s svar var gravitationsfältet i WM_NORMAL_HINTS, som få förstod. EWMH 1.3 valde det enkla: fönsterhanteraren sätter _NET_FRAME_EXTENTS på varje klientfönster med fyra tal, bildpunkterna ramen tar till vänster, höger, upptill och nedtill.

Med dem kan programmet räkna ut sin totala storlek och begära en plats för hela ramen i stället för bara sig självt. KWin hade satt samma siffror under eget namn, _KDE_NET_WM_FRAME_STRUT, sedan tidigare och gör det än. För fönster som ännu inte visats finns _NET_REQUEST_FRAME_EXTENTS, en begäran om en uppskattning innan fönsterhanteraren tagit hand om fönstret. Klientsidesdekorationer vände på det: när GTK 3 ritar skuggan inne i sitt eget fönster behöver fönsterhanteraren veta hur mycket av det som är luft, och det anges i _GTK_FRAME_EXTENTS, samma fyra tal åt andra hållet. xprop visar båda, och den som undrar varför wmctrl -e inte lade fönstret där man sa hittar ofta svaret där.

← Tillbaka till lexikonet