有什么方法可以检测(以标准的,非hackish方式)我的带有GtkHeaderBar的Gnome应用程序是否在提供自己的窗口装饰(例如,XFWM)的窗口管理器下运行,以便我可以设置当不需要时,gtk_header_bar_set_show_close_button为FALSE?
UPD:为了更清楚,我想隐藏GTK标题按钮,而不是WM标题按钮。
答案 0 :(得分:0)
对客户端装饰的支持应来自窗口管理器本身或有关环境缺乏的信息。 XFWM在版本4.12中添加了对它们的支持。
哇,很多提交,这样的功能!你可以阅读4.11.3 announcement here
- 客户端装饰(CSD)支持! (需要启用Compositor)。有和没有gedit的屏幕截图(一个应用程序 在xfwm4上需要CSD)CSD
来源:https://blog.alteroot.org/articles/2015-02-19/new-from-xfce-part-3.html
此外,GTK Headerbar应该尊重$ GTK_CSD环境变量的内容,如果设置为0,则不显示关闭按钮(请注意,如果支持CSD,则不能设置此变量)。可以在Ubuntu中看到。
这意味着它应该为您提供,但您也可以尝试检查$ XDG_CURRENT_DESKTOP的内容,或者阅读更多hacky方法以扩展对更多WM和旧系统的支持:more in this stack overflow question。