2017-06-16 85 views
1

有没有什么办法可以检测(在标准,非hackish的方式),我有一个GtkHeaderBar Gnome的应用程序是否在窗口管理器,提供了自己的窗口装饰(例如,XFWM下运行),以便在不需要时可以将gtk_header_bar_set_show_close_button设置为FALSE?GTK3:禁用额外窗口按钮

UPD:为了更清楚,我想隐藏GTK标题按钮,而不是WM的。

回答

0

的客户端装饰的支持应该来自一个窗口管理器本身或信息来自环境的缺乏。 XFWM在4.12版本中增加了对它们的支持。

哇哦,很多提交,这样的功能!您可以阅读4.11.3 announcement here

  • 客户端装饰(CSD)支持! (需要启用合成器)。与不上xfwm4

来源的gedit(即 需要CSD的应用程序)CSD截图:https://blog.alteroot.org/articles/2015-02-19/new-from-xfce-part-3.html

A screenshot with and without on gedit (an application that need CSD)

此外,GTK Headerbar应该尊重GTK_CSD $环境变量的内容如果设置为0,则不显示关闭按钮(请注意,如果支持CSD,则不能设置此变量)。在Ubuntu中可以看到。

Ubuntu Unity effect of chaning $GTK_CSD

这意味着它是应该被覆盖了你,但你也可以尝试检查的$ XDG_CURRENT_DESKTOP内容或更哈克的方式扩展到更多的WMS和旧系统的支持读了起来:more in this stack overflow question

+0

嗯,我想我会做到这一点的方式hackish的。 – NK22

+0

@ NK22没有文件记录的方式。有一些关于它的问题,但从错误跟踪器显示该补丁被拒绝。也许你可以得到更多关于如何检测这个问题的信息:https://bugzilla.gnome.org/show_bug.cgi?id=729721 https://bugzilla.gnome.org/show_bug.cgi?id=729769 – morningbird