Lessico IT › Programmazione › _NET_FRAME_EXTENTS

_NET_FRAME_EXTENTS

Programmazione Svenska → Aggiornato: 2026-10-09

La proprietà EWMH che comunica a un programma lo spessore della cornice messa dal window manager attorno alla sua finestra, così da poter calcolare dove si trova davvero sullo schermo.

Con un window manager che fa reparenting, la finestra dell'applicazione è figlia della cornice, e ogni coordinata ottenuta con XGetGeometry è relativa a essa. Il programma non vede né la barra del titolo né i bordi e, senza risalire l'albero delle finestre sommando i valori, non può sapere dove si trovi sullo schermo il suo angolo in alto a sinistra. Molti non se ne curavano, con il classico bug del programma che salva la propria posizione e la ripristina all'avvio successivo scivolando ogni volta in basso di un'altezza di barra del titolo. La risposta di ICCCM era il campo gravity in WM_NORMAL_HINTS, che pochi capivano. EWMH 1.3 scelse la via semplice: il window manager imposta su ogni finestra client _NET_FRAME_EXTENTS con quattro numeri, i pixel occupati dalla cornice a sinistra, a destra, in alto e in basso.

Con quei valori il programma può calcolare la dimensione complessiva e chiedere una posizione per l'intera cornice anziché per la sola finestra. KWin impostava già da tempo gli stessi numeri con un nome proprio, _KDE_NET_WM_FRAME_STRUT, e lo fa ancora. Per le finestre non ancora mappate esiste _NET_REQUEST_FRAME_EXTENTS, una richiesta di stima prima che il window manager prenda in carico la finestra. Le decorazioni lato client hanno rovesciato la situazione: quando GTK 3 disegna l'ombra all'interno della propria finestra, il window manager deve sapere quanta parte è spazio vuoto, e lo dice _GTK_FRAME_EXTENTS, gli stessi quattro numeri in senso opposto. xprop mostra entrambe, e chi si chiede perché wmctrl -e non abbia messo la finestra dove richiesto trova di solito la risposta lì.

← Torna al lessico