Lessico IT › Programmazione › _NET_WM_USER_TIME

_NET_WM_USER_TIME

Programmazione Svenska → Aggiornato: 2026-10-10

La proprietà EWMH con cui un programma marca la propria finestra con l'ora dell'ultimo tasto premuto o clic dell'utente, così che il window manager capisca se una nuova finestra è stata richiesta o è semplicemente comparsa.

La prevenzione del furto di focus ha bisogno di un dato su cui decidere, e EWMH 1.3 nel 2005 ne ha fatto una proprietà: _NET_WM_USER_TIME, un CARDINAL che contiene il timestamp del server X dell'ultimo evento utente del programma. Quando una finestra viene mappata o chiede il focus, il window manager confronta il valore con il timestamp della finestra su cui l'utente sta lavorando; se è più vecchio, l'utente ha fatto altro nel frattempo, e la finestra si apre sullo sfondo con _NET_WM_STATE_DEMANDS_ATTENTION invece di prendere il focus. Il valore zero è una promessa: la finestra è comparsa senza che nessuno l'abbia chiesta — una notifica, una finestra di strumenti — e non deve mai prendere il focus. Il confronto deve sopravvivere al ritorno a zero dell'orologio del server dopo 49 giorni, perciò Metacity usa una macro che considera un timestamp «precedente» a un altro quando la differenza è inferiore a metà del ciclo.

Due dettagli tengono insieme il meccanismo. Un programma avviato da un menu avrebbe sempre un timestamp troppo vecchio, perciò la startup notification incorpora l'ora del clic in DESKTOP_STARTUP_ID come suffisso _TIME, e il toolkit lo usa come valore iniziale. Inoltre, poiché ogni timestamp è una modifica di proprietà che il window manager deve ascoltare, EWMH 1.4 ha aggiunto _NET_WM_USER_TIME_WINDOW: la finestra di primo livello punta a una piccola finestra invisibile che riceve da sola i timestamp, così un programma con venti finestre produce un unico flusso di PropertyNotify. GTK fa esattamente questo; xprop su una finestra GTK mostra quindi il puntatore anziché l'ora. KWin era partito in anticipo con il proprio _KDE_NET_USER_TIME in KDE 3.2, prima che il nome fosse standardizzato.

Fonti EWMH
← Torna al lessico