XLib: Как мне вернуться в оконный режим, когда я сделаю его полноэкранным? - PullRequest
4 голосов
/ 22 января 2012

Мне удалось заставить мое приложение работать в полноэкранном режиме, но я не могу вернуть его в оконный режим с видимыми границами . Я пытался вызвать XDeleteProperty, чтобы очистить настройки для полного экрана, но, похоже, он не работает.

1 Ответ

2 голосов
/ 24 января 2012

Если вы используете _NET_WM_STATE http://standards.freedesktop.org/wm-spec/latest/ar01s05.html#id2569140, то перед сопоставлением окна вы устанавливаете свойство, но после сопоставления окна вы должны отправить клиентское сообщение, и менеджер окон обновит свойство.Прочитайте часть EWMH, которая начинается: «Чтобы изменить состояние сопоставленного окна, Клиент ДОЛЖЕН отправить клиентское сообщение _NET_WM_STATE в корневое окно ...»

Это потому, что после сопоставления окна диспетчер оконотвечает за поддержание своего состояния, будет гонка, если и приложение, и WM смогут напрямую изменять свойство.

См. исходный код инструментария, такого как GTK +, например, код.

...