本周,我们发布了 GTK 3.99,这只能意味着一件事:GTK4 真的要来了!
早在二月份,当 3.98 发布时,我们概述了在发布功能完备的 3.99 版本之前我们希望实现的功能。 这是列表:
- 键盘快捷键的事件控制器
- 可移动的弹出窗口
- 行回收列表和网格视图
- 改进的辅助功能基础设施
- 动画 API
我们做得如何?
我们已经从 4.0 的阻碍列表中删除了动画 API,因为它需要更广泛的内部重组,并且我们无法及时完成。 但是所有其他功能都已经进入了各种 3.98.x 快照中,辅助功能基础设施是最近才实现的最后一个保留功能。
其中一些功能已经在这里介绍过了,例如 可移动的弹出窗口 和 可缩放的列表。 其他功能有望在未来进行详细的审查。 在此之前,如果您对新的辅助功能基础设施感到好奇,可以观看 Emmanuele 在 GUADEC 的 演讲。
还有什么新功能?
我想强调的一个领域是,为充实新的可缩放列表基础设施所做的工作量。 我们的筛选和排序模型现在可以增量地工作,因此当在后台筛选或排序大型列表时,UI 可以保持响应。
一个新的 macOS GDK 后端已合并。 它仍然有一些粗糙的角落,我们希望在现在到 4.0 版本发布之间将其平滑。
并且修复了许多小的回归,从微调按钮大小到树状视图单元格编辑到自动滚动到 Inspector 导航再到稍微渲染错误的阴影。
我可以开始移植了吗?
GTK 3.99 是首次查看移植应用程序的绝佳时机。
我们非常感谢那些勇敢地使用 3.96 或 3.98 快照进行试用移植并为我们提供宝贵反馈的早期采用者。 由于有如此多的更改,我们不可避免地在 API 中犯了错误,并且在我们仍然可以解决问题的时候获得这些反馈将真正对我们有所帮助。 告诉我们文档中遗漏的内容、缺少示例或迁移指南中的空白也非常感谢。
我们知道,由于对 GTK 3 的间接依赖,一些移植工作将无法完成。 例如,如果您使用的是 webkit webview 或 GtkSourceView 或 vte,您可能会发现很难尝试 GTK 4。
值得庆幸的是,其中一些库的移植工作已经顺利进行。 其他库,例如 libgweather 将需要做一些工作来将其核心功能与 GTK 3 依赖项分离。
我可以帮忙吗?
如上一节所述,任何关于新 API、文档和移植指南的反馈都非常受欢迎且有帮助。
在许多其他领域,我们也可以使用帮助。 如果您熟悉 OS X API,您可以在完成 macOS 后端方面发挥真正的作用。
我们还开始集成基于 ANGLE 的 GL 渲染器,但是我们的着色器需要 使其与 EGL 一起工作,然后我们才能利用它。 非常感谢对此的帮助。
接下来是什么?
我们致力于在年底前发布 GTK 4。 在此期间,我们正在做更多关于辅助功能后端、改进 macOS 后端、编写文档和示例的工作。