2014-02-11 2 views
0

В вызове XPending() я получаю следующее сообщение об ошибке в терминале:XPending() сообщает об ошибке в окне рядом

XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" 

Это происходит после того, как я нажимаю кнопку закрытия на окне (крест в углу).

В противном случае программа отлично работает. Я предлагаю, когда я нажимаю кнопку закрытия, диспетчер окон внезапно отключит мое приложение от XServer. Таким образом, соединение перестает быть активным, а XPending возвращает ошибку. Могу ли я как-нибудь проверить, действительно ли соединение все еще активно или нет до звонка XPending()? Что такое рекомендуемая «хорошая практика» здесь?

ответ

0

Вам необходимо обработать сообщение WM_DELETE_WINDOW, что диспетчер окон, совместимый с icccm, отправляет клиенту перед закрытием его окна. После того, как последнее окно верхнего уровня закрыто, соединение с сервером X обычно закрывается сервером.

Смежные вопросы