本周 GTK+ – 36

在上周,GTK+ 的主分支有 22 次提交,添加了 1165 行代码,删除了 904 行代码。

计划和状态
  • GTK+ 的路线图可在维基上找到
值得注意的更改

在主分支上

  • Robert Ancell 更新了图标浏览器实用程序,以改进加载图标失败时的错误消息
  • Matthias Clasen 改进了新添加的 GtkCenterBox 小部件;您可以在“容器秘密”系列文章中跟进他的工作
修复的 Bug
  • 783552 翻译解释
  • 759308 打印对话框中的即时应用(份数)
  • 783445 gtk_widget_insert_after/before() 的文档不完整
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 35

在上周,GTK+ 的主分支有 33 次提交,添加了 5011 行代码,删除了 8140 行代码。

计划和状态
  • GTK+ 的路线图可在维基上找到
  • Patrick Griffis 正在尝试一个功能分支,以弃用和删除 gtk_dialog_run();请参阅此评论,了解有关 UI 线程、IPC 线程和 I/O 线程中嵌套主循环的陷阱
  • Matthias Clasen 正在尝试在图标浏览器中重用 libdazzle 中的模糊搜索
值得注意的更改

在主分支上

  • Matthias Clasen 添加了将图标名称复制到剪贴板的功能到图标浏览器实用程序
  • Matthias 还公开了 GtkCenterBox 小部件;此小部件替代了 GtkBox 的等效功能,以拥有居中的小部件
  • Olivier Fourdan 修复了 Wayland 后端的各种 Bug,并将修复程序移植到了 gtk-3-22 稳定分支
  • Chun-wei Fan 推送了各种修复程序,以确保 GTK+ 在 Windows 上使用 MSVC 构建
  • Emmanuele Bassi 修改了 Meson 构建,以确保在安装了 sassc 时,构建 GTK+ 时重新生成所有基于 SASS 的主题;Lapo Calamandrei 删除了 Ruby/Sass 的 Gem 文件,因此 GTK+ 切换到 sassc 作为首选的 SASS 编译器
修复的 Bug
  • 770513 全屏模式下的 MainToolbar 具有圆角,这会在其下方显示视频像素渗色
  • 783347 gtkfilechoosernativewin32:修复对非 ASCII 路径的支持
  • 781945 当顶层窗口的 set_transient_for 设置为另一个顶层窗口时,在 Wayland 上拖动窗口时出现 SIGSEGV
  • 782283 Wayland:当工具提示可见时,关闭菜单时崩溃
  • 781285 Wayland 下的按键重复取消应取决于哪个键在重复
  • 783397 删除 gtktextdisplay.c 中未使用的代码
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 34

在 GNOME 3.24 发布后,经过相当长的中断,我们终于回来了。抱歉让大家久等了!

在上周,GTK+ 的主分支有 103 次提交,添加了 2355 行代码,删除了 5482 行代码。

计划和状态
  • GTK+ 的路线图可在维基上找到。
  • Matthias Clasen 发布了 GTK+ 3.91.0,这是将导致 3.92 发布的开发周期的第一个快照。这仍然是迈向 API 稳定 4.0 的开发周期的一部分。
  • Timm Bäder 正在处理他的 drawing 分支,该分支旨在用真正的小部件替换所有 CSS 小工具的内部使用。有关更多信息,请参阅本博客上的 这篇文章
值得注意的更改

在主分支上

  • Carlos Garnacho 合并了他的 event-delivery 分支,该分支将事件处理从 GDK 窗口层次结构移动到 GTK 小部件层次结构;这是删除顶层窗口之外的所有 GdkWindow 实例的第一步,最终将导致改进的输入处理。
修复的 Bug
  • 745289 wayland:不要在连接错误时使用 g_error()
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 33

在过去的两个星期里,我们背靠背地举办了 DevConfFOSDEM,因此开发速度有所放缓。预计在接近 GNOME 3.24 发布时,开发速度会再次加快。

在这过去的两个星期里,GTK+ 的主分支有 34 次提交,添加了 20973 行代码,删除了 21593 行代码。

计划和状态
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Timm Bäder 删除了 gtk_widget_class_list_style_properties(),这是为了继续弃用 GtkWidget 内的样式属性并将其替换为 CSS 属性
  • Timm 还将仅由 GtkToggleButton 子类使用的一些状态移动到了这些类型中
  • William Hua 改进了 Mir GDK 后端,以正确放置菜单
修复的 Bug
  • 777547 关闭最后一个选项卡后,笔记本箭头图标颜色错误
  • 773686 启动时,软件在仪表板中显示的图标、名称和菜单错误
  • 775864 getting-started:拼写错误 tie->the
  • 778009 菜单在 Fedora 中绘制在菜单栏之上
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 32

在过去的一周里,GTK+ 的主分支有 106 次提交,添加了 7340 行代码,删除了 12138 行代码。

计划和状态
  • Matthias Clasen 发布了 GTK+ 3.89.3
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Benjamin Otte 简化了 Vulkan 渲染器的裁剪着色器
  • Benjamin 还从 CSS 解析器中删除了“假设没有尺寸的数字是像素”的后备代码
  • Daniel Boles 为 GtkMenuGtkComboBoxGtkScale 小部件修复了各种 Bug
  • Daniel 还简化了 GtkComboBox 的内部结构,并将大多数内部小部件移动到了 GtkBuilder UI 文件中
  • Matthias Clasen 从 GTK+ 初始化函数中删除了命令行参数处理;gtk_init() 现在不接受任何参数。此外,由于 GDK 不再是单独的共享库,因此 gdk_init() 已被删除。编写 GTK+ 应用程序的推荐方法仍然是使用 GtkApplication,它处理库初始化和主循环
  • Timm Bäder 合并了他的分支,该分支使 GtkWidget 默认可见,GtkWindowGtkPopover 类除外;Timm 还从 API 中删除了 gtk_widget_show_all(),因为它不再有用
  • Timm 修改了 GtkShortcutsShortcutGtkFileChooserButtonGtkFontButton,以直接从 GtkWidget 继承,利用了基类 GtkWidget 内的新场景图 API

在 gtk-3-22 稳定分支上

  • Ruslan Izhbulatov 修复了 GDK 的 Windows 后端,以确保它与远程显示器一起工作
修复的 Bug
  • 777527 GDK W32:通过 RDP 工作时,GTK 应用程序中的下拉菜单不可见
  • 770112 文档记录的 <alt>左快捷方式在 Wayland 上不起作用
  • 776225 [wayland] 下拉菜单放置在屏幕上的某个位置
  • 777363 [PATCH] wayland:避免不必要的 g_list_length 调用
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周GTK+ – 31

在上周,GTK+的主分支有 52 次提交,添加了 10254 行代码,删除了 9466 行代码。

计划和状态
  • Alex Larsson 正在开发两个独立的分支,用于优化构建 GSK 渲染树时的内存分配和碎片,这是在分析树构建代码之后进行的。
  • Timm Bäder 正在开发一个主题分支,将小部件切换为默认可见。
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Rui Matos 在 Wayland 后端添加了对 gtk-enable-primary-paste 设置键的支持;这需要更新版本的 gsettings-desktop-schemas。
  • Matthias Clasen 和 Alex Larsson 重构了一些 GSK、GtkWidget 和 CSS 内部结构,以避免在分析渲染代码后进行过多的类型转换和类型检查。
  • Matthias 在 GtkAboutDialog 小部件中添加了一个“系统”标签,用于自由形式的系统相关信息。
  • Matthias 还更新了 -gtk-icon-filter 的移植文档。
  • Benjamin Otte 将 X11 后端更改为始终无条件地调用 XInitThreads(),以便安全地使用 Vulkan 渲染 API;这应该是安全的,但鼓励进行测试。
  • Benjamin 更新了 GtkSnapshot API,以确保仅在快照完成后才可以使用渲染节点。
  • Benjamin 还修复了 CSS 图像的处理,这些图像没有明确的大小,但应根据其纵横比进行缩放。
  • Timm Bäder 在 GtkInfoBar 小部件中添加了一个 revealed 属性,并将 GtkActionBar 代码移植为使用它。

在 gtk-3-22 稳定分支上

  • Ruslan Izhbulatov 致力于修复 Windows 下的各种键盘处理问题,包括与 AeroSnap 的交互;Ruslan 还修复了 bug 165385,该 bug 将在 10 天后达到 12 年的历史。
  • Carlos Garnacho 更改了 Wayland 后端中的 EGL 处理,以禁用交换间隔,因为合成器负责渲染的计时。
  • Matthias Clasen 弃用了一些已从开发分支中删除的 API。
修复的 Bug
  • 776031 W32:Win键+向下键最小化最大化的窗口而不是恢复它
  • 165385 Win32 键盘处理仍然不完整
  • 769835 在 Wayland 上,如果包含 GtkGLArea 的应用程序不在当前工作区,则会停止响应
  • 774726 GtkTreeView 拖放:自 3.20 版本以来,gtk_drag_finish 会在重新排序时删除行
  • 769214 暂停键的键值字段未正确填充
  • 776485 GDK W32:无法通过系统菜单恢复最大化的窗口
  • 776604 关于对话框:添加一个“系统”标签
  • 775846 gdk/wayland:添加对 gtk-enable-primary-paste gsetting 的支持
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周GTK+ – 30

在上周,GTK+ 的主分支有 81 次提交,添加了 12205 行代码,删除了 12625 行代码。

计划和状态
  • 在年底假期结束后,欢迎回到本周 GTK+
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Timm Bädert 合并了他将小部件的场景图直接移动到 GtkWidget 类中的工作;这允许小部件拥有内部子项,而无需子类化 GtkContainer
  • Timm 还致力于将当前使用内部 CSS 小工具 API 的小部件移植为复合小部件,例如 GtkSwitch
  • Benjamin Otte 和 Georges Basile Stavracas Neto 一直在努力使 Vulkan GSK 渲染器在 Wayland 上工作。
  • Benjamin 还致力于提高 Vulkan 渲染器的效率。
  • William Hua 在改进 GDK 的 Mir 后端在剪贴板支持方面的功能。

在 gtk-3-22 稳定分支上

  • Matthias Clasen 发布了 GTK+ 3.22.6。
修复的 Bug
  • 776627 更正 PostScript 的大小写
  • 776868 改进 GtkEntry:属性的文档
  • 776560 icon-browser:窗口以非常窄的尺寸打开,仅显示 1 列图标
  • 775732 mir:缺少剪贴板支持
  • 776736 构建:修复 Vulkan 检测
  • 776807 通过选项组初始化 Gtk 时,GtkInspector 不会显示
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周GTK+ – 29

在上周,GTK+ 的主分支有 20 次提交,添加了 883 行代码,删除了 2740 行代码。

计划和状态
  • Alex Larsson 致力于简化 GdkWindow,删除了本机和外部子窗口;长期计划是仅对顶层使用本机窗口系统表面。
  • Alex 还发送了 对 gtk-devel-list 的评论,关于 Benjamin 的 wip/otte/rendernode 分支,其中包含有关 GSK 渲染 API 未来工作的想法。
  • Chun-wei Fan 更新了 Windows 后端,以确保它继续在主分支上构建和工作。
  • Benjamin Otte 在更多的 GtkWidget 子类中实现了 snapshot() 虚拟函数。
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Olivier Fourdan 更新了 Wayland 后端,以确保在需要时在子表面上更新空输入形状;这允许其他工具包(如 Clutter)使用 GDK 子表面 API。
  • Alex Larsson 从 GDK API 中删除了 gdk_window_reparent(),因为它未使用,并且允许实现仅具有顶层 GDK 窗口的目标。
  • Benjamin Otte 从 GdkCellView 中删除了用于修改其背景的临时代码,因为单元格视图可以使用 CSS 来实现相同(或更好)的结果。
  • Benjamin 还从 GtkFrame CSS 节点中删除了 border 节点,因为它执行了额外的即时模式裁剪,这会使渲染复杂化。

在 gtk-3-22 稳定分支上

  • Emmanuele 推出了在使用缺少 GL_EXT_framebuffer_blit 扩展的 OpenGL ES 2.0 实现的 GtkGLArea 时修复 GL 渲染的补丁。
修复的 Bug
  • 776132 提及 gdk_window_create_similar_image_surface 和 cairo_surface_create_similar_image 之间的区别
  • 774534 [wayland] 如果没有 begin_paint()/end_paint(),则不会应用输入形状和不透明区域
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周GTK+ – 28

在上周,GTK+ 的主分支有 103 次提交,添加了 5986 行代码,删除了 1896 行代码。

计划和状态
  • Benjamin Otte 正在开发对 GSK 渲染节点 API 的 重构
  • Emmanuele Bassi 开发了一个 3.x 特定的分支,允许 GDK 在 X11 平台上使用 EGL 而不是 GLX。
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Benjamin 合并了 GSK 的 Vulkan 渲染器,作为 GL 和 Cairo 渲染器的比较点。Vulkan 渲染器添加了对工作 Vulkan 实现的新可选依赖项,以及 glslc
  • Vulkan 渲染器还导致了 GDK 内部 GL 绘图代码的大量重构,但这不应该在 API 中引起任何用户可见的更改。
  • Benjamin 还实现了对 CSS border-spacing 属性的支持,该属性遵循 CSS 2.1 规范

在 gtk-3-22 稳定分支上

  • Matthias 发布了 GTK+ 3.22.5。
修复的 Bug
  • 775651 GdkX11-4.0.gir、GdkWin32-4.0.gir 和 Gsk-4.0.gir 在 Gdk-4.0.gir 准备好之前生成
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周GTK+ – 27

在上周,GTK+的主分支有65次提交,增加了1780行代码,删除了2429行代码。

计划和状态
  • 计划于2017年3月举行GTK+黑客马拉松(已规划);主要议题将是提高性能,特别是渲染方面的性能。
  • Benjamin Otte正在重构GSK的GL渲染器,以确保它与GDK渲染良好集成。
  • 此外,Benjamin还在开发一个基于Vulkan的GSK实验性渲染器。
  • Timm Bäder正在修改GtkWidget和GtkContainer API,将这两个类合并到一个单一的场景图中。
  • GTK+ 的路线图可在维基上找到。
值得注意的更改

在主分支上

  • Matthias Clasen修改了GTK,使其在X11和Wayland下失去显示连接时能够干净地退出;此更改也已向后移植到稳定的gtk-3-22分支。
  • Timm Bäder清理了各种小部件,以便在测量其子级大小时一致地使用gtk_widget_measure()
  • Daniel Boles修复了GtkComboBox中的一个错误,该错误导致在应用下游补丁的基于Debian的发行版中发出警告;有关更多信息,请参见错误 771242;此更改也已向后移植到稳定的gtk-3-22分支。

在 gtk-3-22 稳定分支上

  • Lapo Calamandrei向后移植了GtkProgressbar主题修复,以正确识别空和满状态。
修复的 Bug
  • 774915 [Wayland]: 销毁子表面的父级会导致 _gdk_window_destroy_hierarchy: 断言失败
  • 771242 3.21:为某些类型的GtkComboBox打开菜单会导致Gdk-CRITICAL断言 ‘GDK_IS_WINDOW (window)’ 失败
  • 775410 gsk/Makefile.am在libgsk-4.la链接之前运行g-ir-scanner
  • 775319 [Wayland]: gdk_window_get_toplevel()无法返回子表面的顶层
  • 775316 gtk_drag_source_set_icon_pixbuf对接收到的pixbuf的引用次数过多
  • 775212 GtkScaleButton不取消引用它引用的所有GtkAdjustment
  • 775525 gtk_flow_box_get_child_at_index 不应该因无效的索引而崩溃
参与其中

有兴趣参与 GTK+ 的开发吗?查看新手的 Bug 列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。