是否可以通过单击关闭按钮来阻止应用程序退出?以下代码仅隐藏最小化和最大化按钮但不隐藏按钮...
Run Code Online (Sandbox Code Playgroud)Atom window_type = XInternAtom(display, "_NET_WM_WINDOW_TYPE", False); long value = XInternAtom(display, "_NET_WM_WINDOW_TYPE_TOOLBAR", False); XChangeProperty(display, window, window_type, XA_ATOM, 32, PropModeReplace, (unsigned char *) &value,1 );
我试图通过谷歌搜索覆盖_NET_CLOSE_WINDOW,但无法真正找到一个......或者从xprop中删除_NET_WM_ACTION_CLOSE ...
阅读ICCCM和EWMH.您可能需要数月(或数年)来了解所有细节(以及与X11和X协议和体系结构的关系).
理论上你可以在原始Xlib中做你想要的.但是细节太复杂了,你真的应该使用一些工具包,比如Qt或GTK(生命很短),或者libSDL或SFML.又见这个列表.
在协议和Xlib级别掌握X11需要花费大量时间(相关文档有数千页).你确定愿意花那么多吗?
因此,在原始X11级别进行编码就像在汇编程序中编码一样.今天没有人为真正的程序做到这一点,并且出于类似的原因(抽象层次太低;需要关注的细节太多......).
请注意,目前的趋势是,以取代X 韦兰.您可能需要几年时间才能在X11中从头开始开发您的东西,当您成功时,X将变得过时.BTW最新版本的Qt和GTK了解Wayland(因此相同的代码可以在X11和Wayland上运行).
所以使用一些GUI工具包.它们是数百万行的怪物软件,并且存在这种复杂性的原因(此外,图形卡是当今非常复杂的硬件;也参见此和此).它们使您能够禁用关闭窗口(因为他们知道所有ICCCM和EWMH详细信息).
由于您使用C++标记了您的问题,我强烈建议您使用Qt(或者可能是SFML).Qt的文档非常好.
顺便说一句,你不明确的问题看起来很奇怪(缺乏动力和背景).您似乎错误地认为您的应用程序是屏幕上唯一的应用程序,这违背了每个窗口系统的理念(多任务和多窗口,因此多应用程序,本质上).您应该认为您的应用程序与其他应用程序一起工作(例如,复制和粘贴,没有任何意义,不考虑几个应用程序和涉及多个窗口).高级用户可以随时 "终止"您的应用程序(例如使用kill(1)或xkill).您可能希望通知窗口关闭(例如,在发生这种情况时显示一些对话框).您甚至不应该设计一个不可关闭的应用程序(这违反了所有编码和接口指南).
| 归档时间: |
|
| 查看次数: |
143 次 |
| 最近记录: |