GTK 3.98 发布了。
GTK(GIMP Toolkit) 是一套跨多种平台的图形工具包,最初为 GIMP 而写,GIMP 是指 GNU 图像处理程序(GNU Image Manipulation Program),GIMP 拥有几乎所有图象处理所需的功能,号称 Linux 下的 PhotoShop。GTK 后来发展成为 Linux 下开发图形界面应用的主流开发工具。
以下是一些更新要点:
性能
GL 渲染器进行了优化,性能有所改进。GtkTextView 的滚动性能已大大提高,方法是使其能够缓存可见范围内的渲染节点。
新年开始,重点一直放在改进 CSS 的性能上,CSS 值实现已进行了优化,以尽可能避免计算值,CSS 查找现在正在使用布隆过滤器,并且用于图标加载的 IO 已移至线程。
同时,添加的 sysprof 分析支持使最近的大多数工作成为可能,并且最近对其进行了增强以报告更多信息。
DND
DND 重构已完成,DND 是“Drag-and-Drop”,指对应该数据的拖放:桌面应用之间的数据传输的传统方法是剪贴板或拖放。用于 DND 的 GTK API 已变成事件控制器:GtkDragSource 和 GtkDropTarget。已为 DND 和剪贴板添加了通过文件传输门户进行文件传输的支持。
GDK
GDK 向 Wayland 概念迈进的过程仍在继续。
子界面已被删除,GDK 现在仅支持顶层和弹出界面。客户端窗口实现也已删除。全球位置和相关的 API(例如gdk_surface_move())不再可用。
抓取不再公开为 API,作为替代,可以将弹出界面配置为隐藏外部点击。
现在,在构建 X11 后端时必须使用 XI2,并且已经删除了对 xim 输入法的支持,以支持 IBus。
Wayland 后端不再依赖 libwayland-cursor 加载光标主题,并按需加载单个光标。
移除
通过使小部件在可能的情况下直接从 GtkWidget 派生,已使许多类不可子类化,并且简化了小部件层次。
GtkMenu、GtkMenuBar、GtkToolbar 和相关类已被删除,它们已被 GMenu 和基于 popover 的变体替代。弹出菜单现在可以执行传统的嵌套菜单,并且还可以显示加速器。
上下文菜单不再使用 ::populate-popup 信号创建,而是使用菜单模型和动作。使用 gtk_widget_class_install_action() 之类的 API 可以更轻松地在 class_init 中创建这些动作。
GtkGestureMultiPress 已重命名为 GtkGestureClick,使该事件控制器的作用更加明显。
新增
针对具有其自身界面的小部件引入了 GtkNative 界面。添加了基于约束的布局管理器。GtkTextView 和其它文本小部件可以使用 Ctrl-Z 撤销操作。表情符号选择器小部件已公开。
接下来的计划
3.98 之后,计划进行更频繁的开发,以下是在 GTK 4 之前仍要集成的内容:
- 键盘快捷键的事件控制器
- 可移动的弹出窗口
- 行回收列表和网格视图
- 改进的可访问性基础
- 动画 API
详情见发布公告:
https://blog.gtk.org/2020/02/13/gtk-3-98
另外,值得一提的是,GTK 现在有了一个新的官网:https://www.gtk.org
转自 https://www.oschina.net/news/113742/gtk-3-98-released