GTK 4.2 计划于 3 月发布 – 这不会是一个大型版本,只是增量改进。但是,除了通常的错误修复和性能改进之外,还有一些值得单独列出的内容。
新的 GL 渲染器
Christian Hergert 一直在努力工作,为 GTK 创建一个新的 GL 渲染器。这项工作的最初动机是希望提高我们在 MacOS 上的渲染性能,因为 MacOS 上的 GL 驱动程序不如 Linux 上那么宽容。除此之外,使用新的渲染器重新开始给了我们一个机会,可以应用我们在当前 GL 渲染器上工作时学到的所有知识,并重新组织代码,以便进行未来的改进,例如重新排序和批处理绘制命令。
 新的渲染器尚未合并,但它正在接近功能对等,很可能进入 4.2 版本。我们可能会同时包含旧的和新的渲染器,至少会持续一段时间。
新的渲染器尚未合并,但它正在接近功能对等,很可能进入 4.2 版本。我们可能会同时包含旧的和新的渲染器,至少会持续一段时间。
弹出框阴影
自从引入 GtkPopover 及其标志性的“喙”以来,弹出框会裁剪其边框之外的所有内容,因为我们需要始终如一地放置喙的尖端。在 GTK4 中使用新的基于 xdg-popup 的实现,我们有了一个足够有表现力的定位协议,可以以一种使“喙”指向其应该指向的位置的方式放置弹出框,同时允许弹出框下方和周围出现阴影。与窗口阴影一样,弹出框阴影位于输入区域之外,因此点击会穿透到下面的窗口。
 这是一个小问题,但它可能会在赋予 UI 深度和结构方面产生明显的影响。
这是一个小问题,但它可能会在赋予 UI 深度和结构方面产生明显的影响。
更好的输入
GtkIMContextSimple 是内置于 GTK 中的输入法实现。当我们没有平台方法可以使用时,例如 Wayland 文本协议,就会使用它。GtkIMContextSimple 只做几件事。其中之一是使用 Control-Shift-u 解释 Unicode 字符的十六进制输入。另一个是它处理组合序列,例如
<Compose Key> <a> <acute>
输入 á 字符。
大多数组合序列都以组合键开头,并且 GNOME 40 中的键盘设置将包含一种方法,可以将键盘上的某个键分配给此功能。
在 GTK 方面,我们已经解决了组合序列支持的一些长期抱怨。除了其内置的序列外,GTK 还解析 X11 组合文件。这些文件的格式在 Compose(5) 中描述,但直到现在,GTK 对此格式的支持还很不完整。在 GTK 4.2 中,我们正在改进这一点,以实现
- 允许最多 20 个键的序列(以前的限制是 7 个)
- 生成多个字符(特别是,这允许 Unicode Emoji 序列)
- 支持十六进制代码点
对于那些通过编辑 ~/.Compose 创建自己的组合序列的人来说,这些都是不错的改进。但是我们其他人呢?使用组合序列的一个传统难题是,您必须熟记这些序列,并且盲目地输入它们。在序列完成并且最终字符出现之前,没有任何视觉反馈。不久前,IBus 通过将不完整序列的字符显示为带下划线的预编辑文本来改进这一点,类似于我们对十六进制 Unicode 输入所做的事情。
在为 GTK 复制他们的方法后,最初的用户反馈好坏参半,主要是因为组合键的官方字形 (⎄) 在意外出现时有点分散注意力。所以我回到绘图板,提出了不同的方法
我希望这会更好。欢迎反馈!
所有这些输入更改也将在 GTK 3.24.26 中出现。
