标题栏中的菜单

标题栏中的菜单

从内部来看,Unity 如何确定应用程序中的哪些小部件属于菜单(文件、编辑等)?GTK 中是否有属性可以确定哪些属于应用程序菜单栏?

另外,是否需要以某种非标准方式修改应用程序才能像这样工作?我注意到,当我从 Mozilla 下载 Firefox 时,没有显示菜单栏,但 Ubuntu 版本的 Firefox 有一个菜单栏。

答案1

gtk 应用程序定义其窗口顶部的菜单中应包含哪些内容,并指定选择每个菜单时应运行哪些功能。然后,工具包使用 X 实现这些指令。这就是 gtk(和其他工具包)的设计。

如果您对工具栏出现在屏幕顶部而不是应用程序窗口顶部感到疑惑,应用程序的设计是一样的,但对 gtk 做了一点小改动,以拦截应用程序菜单的绘制,绘制指令则通过会话 dbus 传递到 Unity,由 Unity 处理与这些菜单相关的绘制和信号。我记得有一个环境变量可以设置以禁用此行为。

相关内容