一些 GTK 核心开发人员最近聚在一起几天,进行了一些重点工作并讨论了当前和未来的计划。
要在一篇博客文章中总结三天的讨论内容是困难的,但这里是一些重点内容。
图标主题
GtkIconTheme 代码已经存在很久了。它实现了图标主题规范,并且来自我们随桌面发布大量图标集以及主题有望切换它们的时代。但这并不是现在制作或使用图标的真正方式。
我们需要一个更好的解决方案,从设计师在工作表中制作图标集到开发者将单个图标复制到他们的应用程序中。
在 GTK 内部,这将需要某种形式的“资源管理器”来维护从图标名称到图像/文件/资源的映射。
语言
虽然我们无法摆脱为所有语言绑定提供带有 gobject-introspection 元数据的 C 接口,但使用比 C 更具表现力的语言和更强大的编译器可能会更好。
当然,我们不能也不会用不同的语言重写所有 GTK。尝试替换较小的部分会很好。允许用不同的语言编写新代码也可能会带来新的贡献者。
输入
我们讨论了滚动速度问题,并决定在问题中写一个解释性评论,说明我们认为正确的解决方案
- 分别处理滚轮和触摸板滚动
- 将控制中心/合成器的配置注入到 libinput 中
- gtk 通过事件获取
我们讨论的另一个重要输入问题是“异步事件处理”及其问题。出现这种情况的两个主要情况是 webkit,其具有 ui<>web 进程通信,以及 IBus。在这两种情况下,我们认为实际上没有兴趣将未处理的事件重新注入到 GTK 捕获/冒泡传播中。相反,此类剩余事件应该“本地”处理(在 IBus 情况下,向条目添加/删除字符或移动光标)。
平台库
在 GTK4 中,我们有意地改变了将所有内容都放在 GTK 本身中的做法,而是引入了“平台库”的概念,例如 libadwaita,以携带更多特定于平台的窗口小部件。
总的来说,我们对结果感到满意,并且我们希望继续这种方法。可能有一些空间可以将一些比窗口小部件更像管道的东西移回 GTK 本身。
GTK5?
我们需要打开一个 .90 分支来做那些会破坏我们现在已弃用的 API 的事情(比如文件选择器,以及更通用的选择器对话框/窗口小部件拆分)。我们中的一些人一直渴望开始这项工作。但 4.x 中仍有很多工作要做(例如,GtkListView 修复)。
考虑到计划在 4.12 中推出的颜色管理工作,建议在 4.12 之后打开 4.90 开发分支。这将使其在今年年底左右,并且在 4.0 版本发布 3 年后,这似乎是合理的。
结束
最后一天,我们很高兴在我们的地方接待了文档和跟踪器团队。
我们要感谢 GNOME 基金会支持我们的会议。❤️