Как выйти из программы с кнопкой закрытия в XCB - PullRequest
4 голосов
/ 08 января 2012

Не удается найти ссылку на то, как закрыть приложение кнопкой «X». Я программирую с помощью XCB и хочу закрыть программу кнопкой «X». Я посмотрел и ничего не могу найти по этому поводу. Я знаю, как закрыть, нажав кнопку. Кроме того, при нажатии кнопки «X» окно выглядит так, как будто оно закрывается, но не закрывается.

1 Ответ

14 голосов
/ 06 октября 2012

Я тоже боролся за эту тему некоторое время назад.

Посмотрите на http://marc.info/?l=freedesktop-xcb&m=129381953404497.

Ключ заключается в том, чтобы сохранить cookie для WM_DELETE_WINDOW в отдельном cookie ...

xcb_intern_atom_cookie_t cookie2 = xcb_intern_atom(c, 0, 16, "WM_DELETE_WINDOW");
xcb_intern_atom_reply_t* reply2 = xcb_intern_atom_reply(c, cookie2, 0);

и в цикле событий сравните client_message с cookie2

case XCB_CLIENT_MESSAGE:
{
    if((*(xcb_client_message_event_t*)event).data.data32[0] == (*reply2).atom) ...
}
...