Leksykon IT › Programowanie › ConfigureNotify

ConfigureNotify

Programowanie Svenska → Zaktualizowano: 2026-10-10

Zdarzenie X11 informujące, że okno faktycznie zmieniło położenie, rozmiar, szerokość ramki lub miejsce w kolejności okien — już po fakcie, a nie przed nim.

Klient X, który chce śledzić własny rozmiar, wybiera dla swojego okna StructureNotifyMask i dostaje ConfigureNotify przy każdej zmianie geometrii. Zdarzenie niesie współrzędne x i y, szerokość, wysokość, szerokość ramki, okno-sąsiada, nad którym teraz leży, oraz flagę override-redirect. To sygnał, by przeliczyć układ i przerysować zawartość. Rodzic, który wybierze SubstructureNotifyMask, dostaje to samo zdarzenie dla wszystkich swoich potomków. Programy szybko nauczyły się je łączyć: przeciąganie rogu okna generuje kilkadziesiąt zdarzeń na sekundę, a aplikacja przerysowująca się przy każdym nigdy ich nie dogoni.

Pułapka pojawia się przy reparentingu. Gdy menedżer okien owinie klienta ramką, współrzędne w zdarzeniu są względne wobec tej ramki, a nie ekranu, i przesunięcie ramki z punktu widzenia rodzica w ogóle nie rusza klienta. ICCCM wymaga więc, by menedżer okien wysyłał syntetyczne ConfigureNotify, rozpoznawalne po send_event, ze współrzędnymi względem okna głównego. Programy ufające prawdziwemu zdarzeniu i odrzucające syntetyczne umieszczają swoje menu kontekstowe kilka pikseli obok — za to niezawodnie.

← Wróć do leksykonu