В этой статье не процитировать какие - либо источники . ( сентябрь 2008 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
В системе X Window каждое окно содержится в другом окне, называемом его родителем. Это заставляет окна образовывать иерархию . Окно корня является корнем этой иерархии. Он размером с экран, а все остальные окна являются его дочерними или потомками.
Поскольку каждое окно закрывает ту часть своего родителя, в которой оно остается, все остальные окна кажутся выше корневого окна. В результате корневое окно отображается как часть экрана, которая находится за всеми другими окнами. Другими словами, корневое окно образует фон экрана. Изображение можно использовать в качестве обоев экрана, установив его в качестве фонового изображения корневого окна. Это можно сделать, например, с помощью программ xsetroot
или xv .
Прямые дочерние элементы корневого окна называются окнами верхнего уровня . Эти окна обычно имеют декоративную рамку и строку заголовка (которые фактически добавляются оконным менеджером ). Неформально окна верхнего уровня являются обычными окнами в терминологии большинства графических интерфейсов пользователя . Окна, не относящиеся к верхнему уровню, используются для кнопок, текстовых полей и т. Д.
Свойства корневого окна иногда используются как элементарная форма средств межклиентской коммуникации. Например, вырезанные буферы - это свойства корневого окна, которые используются для копирования выделенного текста из одного окна в другое, а оконный менеджер dwm отображает имя корневого окна в области состояния. В X ресурсы также хранятся, во время выполнения, в свойстве корневого окна.
Виртуальное корневое окно [ править ]
В оконном менеджере swm появилось виртуальное корневое окно . С точки зрения протокола X это обычное окно. Однако диспетчеры окон X, использующие виртуальное корневое окно, переопределяют все окна к нему, а не к настоящему корневому окну. Виртуальные корневые окна в основном используются диспетчерами окон для повторного родительского контроля , например, для реализации ряда виртуальных рабочих столов, между которыми пользователь может переключаться.
Другим клиентам (кроме оконного менеджера) может потребоваться виртуальное корневое окно. Идентификатор этого окна можно найти в свойстве окна, названном __SWM_VROOT
в прямом дочернем элементе реального корневого окна. Технически многие программы используют макросы для поиска корневых окон, переопределенных включаемым файлом с именем vroot.h
.
Спецификация оконного менеджера freedesktop требует, чтобы свойство с именем _NET_VIRTUAL_ROOTS
реального корневого окна содержало список окон, которые действуют как виртуальные корневые окна; виртуальное корневое окно, которое в настоящее время активно, можно найти в свойстве _NET_CURRENT_DESKTOP
реального корневого окна.
Окно виртуального корня используются в окне менеджеров SwM, tvtwm , amiwm и просветление . Другие системы, такие как KDE, используют виртуальное фоновое окно (которое, например, содержит значки), но не изменяют родительство других окон по отношению к этому. Виртуальное корневое окно также используется XScreenSaver : когда заставка активирована, эта программа создает виртуальное корневое окно, помещает его поверх всех других окон и вызывает один из своих хаков (модулей), который находит виртуальное корневое окно. и рисует в нем.
Утилиты, использующие корневое окно [ править ]
См. Также [ править ]
Внешние ссылки [ править ]
- Советы по расширенному оконному менеджеру от freedesktop.org
- toon_root.c , исходный файл XPenguins, который содержит информацию о виртуальных корневых / рабочих окнах для различных оконных менеджеров.