【问题标题】:How to exit program with close button in XCB如何在 XCB 中使用关闭按钮退出程序
【发布时间】:2012-02-05 06:32:18
【问题描述】:

找不到任何关于如何通过“X”按钮关闭应用程序的参考。我正在使用 XCB 进行编程,并想通过“X”按钮关闭程序。我看了看,找不到任何关于它的东西。我知道如何按下按钮关闭。此外,通过按“X”按钮,窗口看起来像是关闭但没有关闭。

【问题讨论】:

    标签: linux xcb


    【解决方案1】:

    前段时间我也在这个话题上苦苦挣扎。

    http://marc.info/?l=freedesktop-xcb&m=129381953404497

    关键是将 WM_DELETE_WINDOW 的 cookie 存储在单独的 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) ...
    }
    

    【讨论】:

    • 好吧,它可能会帮助其他人。 ;-)
    • 它只是帮助了别人。 SO 是 Google 上的第一次点击,尽管它确实导致了一个不相关的页面,因为蜘蛛在“相关”侧边栏中看到了这个问题。
    • 嘿,没关系!我经常在这里找到好的解决方案。现在我可以说我回馈了一些东西...... ;-)
    • 我是否可以建议在您的答案中复制完整的解决方案(原子和 cookie 的五行以及属性的替换)?无论您链接到的邮件列表存档是否可用,这将有助于保证完整答案的可用性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2017-08-08
    • 1970-01-01
    • 2014-08-26
    • 2014-10-16
    相关资源
    最近更新 更多