LINUX.ORG.RU

Как определить закрытие окна в X11?


0

0

Helloworld отсюда http://www.linux.org.ru/view-message.jsp?msgid=4000913 внезапно перерос в простой клавиатуро-ориентированный Window Manager для собственных нужд (http://bitbucket.org/wieker/ksksawm/).

Но не со всеми приложениями у меня получается работать корректно. Например, как можно узнать, что окно закрылось? При закрытии большинства окон посылается событие Unmap Event, но я наткнулся на программку Battle for Wesnoth, закрытие окна которой никакого Unmap Event не производит. Как узнать, что закрылось это приложение?

Смотрел исходники evilwm, там сделано, вроде, как у меня. Кто-то может подсказать ответ на этот вопрос, или хотя бы порекомендовать почитать какие-то понятные исходники несложного wm, который обрабатывает эту ситуацию корректно?

★★
Ответ на: комментарий от former_anonymous

я глянул функцию static void mainloop(void) - судя по тому, что увидел, там вообще никак не определяется, закрывается ли окно.

wieker ★★
() автор топика

Ты же всё равно все эвенты от иксов ловишь? Плюй в лог, потом посмотри, что прилетает в таком случае.

mv ★★★★★
()
Ответ на: комментарий от mv

- XSelectInput(dpy, root, SubstructureRedirectMask);

+ XSelectInput(dpy, root, SubstructureRedirectMask | SubstructureNotifyMask);

оказывается не все, забыл SubstructureNotifyMask. Самое интересное, что без оной SubstructureNotifyMask от остальных прог, кроме веснота Unmap Event приходило. Почему? А по весноту вопрос снят - моя невнимательность была причиной.

wieker ★★
() автор топика
Ответ на: комментарий от wieker

> оказывается не все, забыл SubstructureNotifyMask. Самое интересное, что без оной SubstructureNotifyMask от остальных прог, кроме веснота Unmap Event приходило. Почему? А по весноту вопрос снят - моя невнимательность была причиной.

ХЗ. Я с тем же, похоже, в stumpwm + virt-manager мучался.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.