计划
当我们开始向 GTK+ 4 开发时,我们制定了一个计划,声明 GTK+ 3.22 将是 GTK+ 3 的最终稳定分支。并且我们坚持了一段时间。
它在一定程度上为我们服务得很好 - GTK+ 3 停止了剧烈的更改,这很受欢迎,并且我们终于看到应用程序从 GTK+ 2 迁移过来了。
现实
但是,GTK+ 4 的成熟需要时间(更多内容将在另一篇文章中介绍),一些很棒的新功能(例如字体变体支持或表情符号补全)在主分支中仍然未使用。我们还收到了来自一些移植应用程序的关于关键 API 的请求。
因此,我们决定最好改变路线,通过在 9 月发布 GTK+ 3.24 版本,允许在 GTK+ 3.x 中添加有限数量的新功能和 API。
现在 git 中有一个 gtk-3-24 分支。GTK+ 3.x 的维护已转移到该分支,我们将不再进行任何进一步的 3.22.x 版本发布。
亮点
这个新分支的第一个版本是 GTK+ 3.23.0,可以在这里找到
https://download.gnome.org/sources/gtk+/3.23/gtk+-3.23.0.tar.xz
此版本的亮点包括新的字体选择器功能,
- 允许设置 OpenType 字体特性
- 显示 OpenType 字体特性的示例
- 允许选择 OpenType 字体变体
- 支持选择的详细程度
新的表情符号功能,
- 支持表情符号的补全弹出窗口
- 删除 Ctrl-Shift-e 快捷键
gdk_window_move_to_rect 作为公共 API,
以及在 FreeBSD 上使用匿名共享内存的 Wayland 后端。
数字命理学
再进行一个 3.x 周期的副作用是,我们将拥有 GTK+ 3.24 作为最终的 GTK+ 3,这与 GTK+ 2.24 作为最终的 GTK+ 2 是一个令人愉快的巧合。
分数缩放?
> 表情符号补全
等等,什么!? 有关于此的任何信息吗?
请加入背景模糊
您好,
这个最终的 3.24 版本是否会向后兼容(旧的最终)3.22 版本?
@ramnasko:是的;只添加了新的 API,这是由 Inkscape 和 Firefox 等应用程序请求的。添加了新的弃用,以方便移植到 GTK4,但可以禁用它们。最后,没有主题更改。
@Frederik:已经在 GTK 主分支中可用,但只能为 4.0 完成:它不能向后移植到 GTK+ 3.24。
@pete:这是合成器的责任,而不是工具包的责任。
资源和窗口系统表面只能使用整数缩放;字体渲染已经可以使用不同的 DPI 值。
> 这是合成器的责任,而不是工具包的责任。
那么为什么 Qt 提供分数缩放呢?
@Emmanuele Bassi:这只是 Gtk 的问题,其他工具包(如 Qt、Android 工具包、Windows UWP 等)都可以很好地处理分数资源和窗口表面。
这是 Gtk 团队一个糟糕且失败的设计决策导致了这个问题。而且它会带来更多麻烦,例如,在 1.5 倍的 4K 屏幕上,Gtk 应用程序混合使用 Gtk 和 3D 渲染内容,并且它们突然必须推送 6K,其中一半用户永远看不到。
@pete:Qt 提供“分数缩放”的方式与 GTK 相同:用于文本以及通过文本内容调整大小的控件。资源和窗口系统资源的分数缩放没有任何意义:你不可能有一个 100.5 像素乘 200.2 像素的窗口,而且你不可能有一个没有模糊结果的分数缩放的图标资源。
GNOME 允许你使用实验性切换来处理分数缩放,因为它没有经过大量测试;请参阅: https://www.omgubuntu.co.uk/2017/09/enable-fractional-scaling-gnome-linux
@Janne Koschinski:很抱歉,但这没有任何意义。macOS、iOS、Windows、Qt 和 Android 在缩放方面使用与 GTK 相同的功能:通过提供缩放到所需输出的资源。如果内容不可用,显示服务器可以并且将会缩放内容,但结果会模糊,因为你无法生成你没有的像素。
感谢 Emmanuele 的回答,简洁而清晰的说明:)
gtk/language-names.h 在 tar.xz 中丢失。
是的,这是一个已知问题;请参阅:https://gitlab.gnome.org/GNOME/gtk/issues/1173
它将在下一个快照中修复。