Повторного воспитания менеджер окон является X Window System оконный менеджер , который принимает все другие окна.
В системе X Window каждое окно имеет родительское окно, которое может быть либо корневым окном, либо другим окном. Окна, которые являются дочерними по отношению к корневому окну, называются окнами верхнего уровня . Когда создается окно верхнего уровня, диспетчер окон для повторного родителя изменяет родителя этого окна на второе новое окно, созданное диспетчером окон для этой цели. Это позволяет диспетчеру окон украшать окна декоративными элементами и строками заголовка, а также обеспечивает расширенный контроль над работой окон, требуемый, например, диспетчерами виртуальных окон .
Технически, диспетчер окон повторного родительства регистрируется на X-сервере, чтобы получать уведомления, когда отображается окно верхнего уровня (пытается стать видимым). Когда такое событие генерируется, оконный менеджер создает окно фрейма , а в большинстве случаев также окно строки заголовка. Затем окно фрейма становится родительским как для главного окна, так и для окна строки заголовка. Также могут быть созданы другие формы украшения, такие как кнопки, заголовок окна и т. Д.; обычно они создаются окном строки заголовка. [1]
Практически все современные оконные менеджеры являются родителями, хотя более ранние оконные менеджеры, такие как оконный менеджер uwm , не были. Исключениями из этого правила являются dwm , cwm , PLWM , ratpoison и xmonad из-за отсутствия каких-либо типичных оконных украшений, используемых этими оконными менеджерами, а также Compiz, который рисовал украшения отдельно до версии 0.9.0, где он стал повторно -parenting оконного менеджера, чтобы он мог работать в несоставном режиме. Несмотря на то, что stumpwm не отрисовывает типичные оконные декорации, он воспроизводит окна в родительском фрейме для отображения контуров.
Рекомендации
- ^ Руководство по программированию Xlib Глава 10 Архивировано 30 апреля 2013 г. на Wayback Machine