本周 GTK+ – 28

在过去的这一周里,GTK+ 的主分支有 103 次提交,增加了 5986 行代码,删除了 1896 行代码。

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

在主分支上

  • 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。
修复的错误
  • 775651 GdkX11-4.0.gir、GdkWin32-4.0.gir 和 Gsk-4.0.gir 在 Gdk-4.0.gir 准备好之前生成
参与其中

有兴趣参与 GTK+ 的工作吗?查看面向新手的错误列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 27

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

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

在主分支上

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

在 gtk-3-22 稳定分支上

  • Lapo Calamandrei 向后移植了 GtkProgressbar 主题修复程序,以正确识别空状态和完整状态
修复的错误
  • 774915 [Wayland]:销毁子表面的父级会导致 _gdk_window_destroy_hierarchy:断言失败
  • 771242 3.21:打开某些类型的 GtkComboBox 的菜单会导致 Gdk-CRITICAL 断言“GDK_IS_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+ 的工作吗?查看面向新手的错误列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 26

在过去的这一周里,GTK+ 的主分支有 40 次提交,增加了 1551 行代码,删除了 1998 行代码。

计划和状态
  • Matthias Clasen 发布了第一个 GTK+ 3.89 开发快照
  • GTK+ 的路线图可在 wiki 上找到。
值得注意的更改

在主分支上

  • Andrew Chadwick 修复了一系列 Windows 上的图形平板电脑支持问题
  • Benjamin Otte 删除了 gtk_cairo_should_draw_window() 实用函数;该函数是为了在 3.x API 中保持兼容性而引入的,但现在不再需要了
  • Benjamin 还删除了 gdk_window_process_updates()gdk_window_process_all_updates();GDK 早已切换到帧时钟;此外,只有顶层 GdkWindow 才能用作渲染表面
  • Lapo Calamandrei 使用最近一轮针对进度条和渐变的 CSS 改进更新了高对比度和 Adwaita 主题
修复的错误
  • 774114 即使仅更改窗口的内容,也会重新绘制窗口阴影
  • 774695 GtkProgressbar 需要完整的类和空的类
  • 774265 wintab 设备没有倾斜度
  • 774699 [wintab,潜在的段错误]:列表迭代回归导致在查找过程中忽略奇数索引的设备,例如,不显示压力
  • 775038 构建:向 GSK 的依赖项添加 wayland
  • 774917 [wayland] 子表面需要相对于其父级放置
  • 774893 启动 GtkInspector 时,应用程序字体大小缩放被钳制为 1.00
  • 774939 GtkLabelAccessible:在设置父级之前初始化链接
  • 774760 inspector:确保控制器是 GtkGesture
  • 774686 GtkMenu 不会取消引用它创建的所有 GtkCheckMenuItem
  • 774743 GtkNotebook 不会取消引用它创建的所有 GtkBuiltinIcon
  • 774790 GtkTextHandle 不会取消引用它引用的所有 GtkAdjustment
参与其中

有兴趣参与 GTK+ 的工作吗?查看面向新手的错误列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ – 25

在过去的这一周里,GTK+ 的主分支有 167 次提交,增加了 8048 行代码,删除了 6858 行代码。

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

在主分支上

  • GtkFileChooser:local-only 属性的默认值现在为 FALSE,这意味着文件选择对话框将自动显示非本地资源。
  • Benjamin Otte 引入了 GtkSnapshot API,它充当小部件的 GskRenderNode 构建器,旨在取代立即模式的 gtk_render_* 系列函数。
  • Benjamin 还更改了 GtkDrawingArea API,该 API 现在使用显式回调函数,而不是通用的 GtkWidget::draw 信号。
  • 最后,Benjamin 实现了 GTK+ 中对 3D CSS 转换的支持。
  • 读取 GdkWindow 内容回 GdkPixbuf 的 GDK API 已被删除,因为它们的行为和结果依赖于平台。
  • Matthias Clasen 使用最新的 API 添加更新了 GTK+ 3.x → 4.x 移植指南和 API 参考。
  • Simon Steinbeiss 更新了 GtkProgressbar 的 CSS 样式,以便在进度设置为 0.0 或 1.0 时分别添加 emptyfull 类。
修复的错误
  • 774475 wayland:如果父级不是根,则 gtk+ 会阻止使用子表面
  • 774476 没有输出的表面会重置缩放因子
  • 774634 GtkPlacesView 不会取消引用它引用的所有 GDaemonFileEnumerator
  • 773007 GtkFilechooser 为不匹配的扩展名提供补全
  • 774609 对外部绘制微调按钮演示的小修复
  • 773587 [PATCH] recent-manager:添加列表大小的限制
  • 774352 GtkAppChooserWidget 未取消引用它引用的所有 GAppInfo
  • 774347 构建失败:未知类型名称 GdkColor
  • 773601 当 RANDR 不可用时,显示尺寸被检测为 0x0 像素
  • 774614 打印文档中错误的 #include
参与其中

有兴趣参与 GTK+ 的工作吗?查看面向新手的错误列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ 更新 – 24

在上周,GTK+ 的 master 分支有 46 次提交,新增 1541 行代码,删除 3471 行代码。

计划和状态
  • Emmanuele Bassi 在维基上列出了 GSK 需要处理的项目清单
  • GTK+ 的路线图可在 wiki 上找到。
值得注意的更改

在主分支上

  • Matthias Clasen 致力于删除自定义的 -gtk-gradient CSS 函数,并确保标准的 radial-gradientlinear-gradient 函数按照 CSS 规范定义的方式工作
  • Lapo Calamandrei 将 Adwaita 和 GTK+ 提供的其他主题移植到标准的 CSS 渐变定义
  • Benjamin Otte 在 GSK 内部引入了一个 GskTexture API,用于缓存 GTK+ 的图标资源,并避免多次纹理上传
  • Timm Bäder 移除了 GtkTreeViewGtkToolItemGroup 使用的自定义样式属性,并用标准的 CSS 属性替换了它们
  • Timm 还移除了 GtkComboBoxappears-as-list 自定义样式属性

在 3.22 稳定分支上

  • Matthias Clasen 发布了 GTK+ 3.22.3
  • Chun-wei Fan 合并了 Windows 的 HiDPI 显示支持
修复的错误
  • 774097 GtkPrintOperation 不应截断作业名称
  • 772075 在 Wayland 下,GTK+ 比在 X11 下使用更多的 CPU
  • 773916 GtkComposeTable 缓存损坏:连续两次使用相同的 ~/.XCompose 不起作用
  • 773979 GdkGLContext 不链接 finalize 处理程序
  • 774046 GtkSpinButton 并非总是取消引用 priv->{up,down}_button
  • 774066 GtkHeaderBar 并非取消引用它创建的所有 GtkBox 和 GtkSeparator
  • 774185 GtkPlacesSidebar 取消引用自身的次数与其引用的次数不一致
参与其中

有兴趣参与 GTK+ 的工作吗?查看面向新手的错误列表,并加入 irc.gnome.org 上的 IRC 频道 #gtk+。

本周 GTK+ 更新 – 22

在上周,GTK+ 的 master 分支有 132 次提交,新增 10020 行代码,删除 16435 行代码。

计划和状态
值得注意的更改

master 分支上

  • Alex Larsson 移除了 GDK 中对“屏幕外”GdkWindow 的支持,以及 GTK+ 中的 GtkOffscreenWindow 小部件,以简化 GDK 的内部结构。从现在开始,屏幕外窗口的工作将由 GSK 完成
  • Alex 还更改了 GTK+ 的构建方式:从现在开始,不会有单独的 GDK 和 GSK 共享库;相反,GTK+ 将提供一个包含 GDK 和 GSK 符号的单个共享库。这允许 GTK 使用内部符号,而无需通过私有函数指针表公开它们,并减少调用 GDK API 的内部 PLT 跳转
  • Chun-wei Fan 改进了 GDK 的 Windows 后端中的 OpenGL 支持;GDK 将使用更准确的 GL 配置选项,如果核心配置文件上下文不可用,将回退到传统的 GL 上下文,就像 X11 和 Wayland 后端一样
  • Fan 还更新了 Visual Studio 项目文件,以便构建 GSK;MSVC 2013 现在是编译下一个稳定版本的 GTK+ 所需的最低版本
  • Benjamin Otte 重构了 GTK 中排队失效的方式,并移除了 gdk_window_invalidate();这允许检查器显示 GTK 小部件失效在渲染期间引起的更新
  • Benjamin 还移除了从 GDK 查询视觉效果的 API,以及检查窗口系统是否使用 RGBA 视觉效果和合成的 API 已从 GtkWidget 移动到 GdkDisplay
修复的错误
  • 773479 GtkShortcutType 开发文档中的拼写错误
  • 773100 将 libgdk.so 合并到 libgtk.so 中
  • 773528 改进 Windows 上的 GL 支持
参与其中

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

本周 GTK+ 更新 – 21

在上周,GTK+ 的 master 分支有 335 次提交,新增 13631 行代码,删除 37699 行代码。

计划和状态
  • Emmanuele 将他的 wip/ebassi/gsk-renderer 分支合并到 master 分支中,有效地将 GSK 添加到 API 中;目前正在努力提高其性能,并将更多小部件移植到 GskRenderNode API
  • Benjamin 添加了用于输入和子窗口的新 GdkWindow 构造函数,这些构造函数最终将取代通用的 gdk_window_new() API
  • Timm 从 GTK+ 中移除了更多已弃用的 API
  • Timm 还用单个 GtkWidgetClass.measure 虚拟函数替换了所有 get_preferred_* 虚拟函数系列,从而简化了小部件的实现
  • Matthias 为希望将其代码从 GTK+ 3.x 移植到 GTK+ 4.x 的应用程序开发人员启动了新的迁移指南
  • Chun-wei Fan 根据弃用和 API 更改更新了 GDK 的 Windows 后端
  • GTK+ 的路线图可在 wiki 上找到。
值得注意的更改
  • GDK 现在尝试更好地检测 GL 上下文是否正在使用 OpenGL ES、核心 OpenGL 配置文件或传统的 OpenGL 配置文件。
  • gtk-3-22 分支中,针对已从 master 分支中移除的 API 的新弃用
    • gdk_window_set_debug_updates() — 将被 GSK 中的适当渲染取代
    • GtkContainer:child — 没有替代,因为它只是 C 中的一个便利属性,用于可变参数函数
    • gdk_window_set_background* 系列函数 — 没有替代
    • gdk_window_set_wmclass() — 没有替代,因为它已经被标记为“请勿使用”
    • gdk_drag_dest_set_proxy() — 没有替代
    • 各种 GdkScreen API — 被 GdkMonitor 取代
  • Jaime Velasco Juan 在 gtk-3-22 分支中大大改进了“原生”Windows 主题,以更好地匹配 Windows 7 视觉效果
  • Lapo Calamandrei 修复了 Adwaita 中圆形按钮的外观
修复的错误
  • 772922 GtkMenu:尝试更频繁地使用 gdk_window_move_to_rect()
  • 773029 [gucharmap] style-set 信号问题
  • 773246 css 颜色定义文档中的拼写错误
  • 773180 不要妄自猜测我们的 GDK GL 上下文是否为 GLES
  • 773113 tests:通过加载正确的图标来修复剪贴板测试
  • 771694 GtkSourceView 完成弹出窗口未显示,未找到抓取的座位
  • 771205 具有圆形样式类的按钮在底部突然出现剪切阴影
参与其中

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

本周 GTK+ – 20

在上周,GTK+ 的主分支有 191 次提交,添加了 4159 行代码,删除了 64248 行代码。

计划和状态
  • Benjamin 合并了他的 wip/otte/gtk4 分支,该分支删除了各种已弃用的 GDK 和 GTK+ API,到主分支
  • Timm 合并了他的 wip/baedert/box 分支的部分内容,该分支删除了已弃用的主题引擎 API 和其他旧样式 API,到主分支
  • GTK+ 的路线图可在 wiki 上找到。
值得注意的更改
  • Emmanuele 在 master 中的默认构建中添加了各种编译器标志,以便在开发过程中尽早捕获问题,并希望在推送到远程存储库之前捕获
  • Matthias 添加了新的 GTK+ 编译器要求;如果您希望构建 GTK+,您的编译器必须至少支持 C99 的已知子集
修复的错误
  • 772683 在 glarea 演示中使用 FALSE 代替 gint
  • 772926 shortcutswindow:set_section_name() 的工作版本
  • 772775 菜单绑定需要属性来强制水平按钮显示提示使用 LTR
  • 771320 [Wayland] 地图小部件在 gnome-contacts 内显示的位置错误
  • 767713 Wayland 中的全屏存在错误
参与其中

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

本周 GTK+ – 19

在上周,GTK+ 的主分支有 24 次提交,添加了 3731 行代码,删除了 3351 行代码。

计划和状态
  • Matthias 发布了 GTK+ 3.22.1,并为稳定版本创建了 gtk-3-22 分支
  • master 分支上的窗口现在已为 4.0 开发打开
  • Benjamin Otte 已开始在他的 wip/otte/gtk4 分支中删除 3.x 已弃用的 API
  • Timm Bäder 正在他的 wip/baedert/box 分支中删除已弃用的样式 API
  • GTK+ 的路线图可在 wiki 上找到。
值得注意的更改
  • Matthias 正在研究构建系统,以确保 master 分支可以与 gtk-3-22gtk-2-24 稳定分支并行安装
  • 旧的和已弃用的 AM_PATH_GTK_3_0 用于基于 autotools 构建系统的 m4 宏已从 master 分支中删除;依赖于 GTK+ 3.x 的项目应该已经移植为仅使用 pkg-config 和 PKG_CHECK_MODULES 宏。
修复的错误
  • 772695 即使在 RTL 中,也从左到右显示键盘快捷键
  • 772345 placesviewrow:可见时,busy_spinner 会偏移该行上的其余小部件
  • 772415 避免调用 eglGetDisplay
  • 772389 在覆盖模式下向 GtkEntry 控件附加字符会发出蜂鸣声
参与其中

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

谁编写了 GTK+ 3.22

现在 GTK+ 3.22.0 和 GLib 2.50.0 已经发布,现在是回顾此开发周期并查看人员和公司为此版本做出贡献的时候了。

活动

在 3.22 开发周期中,GLib 总共添加了 14119 行代码,删除了 2031 行代码,净增 12088 行代码

glib-changes-3-22相反,GTK+ 总共添加了 46581 行代码,删除了 19163 行代码,净增 27418 行代码

gtk-changes-3-22

这些统计数据不包括翻译。

贡献者
GLib

GLib 收到了 60 个人的贡献

glib-contributors-3-22

即使更改的大小在减少,GLib 中贡献者的趋势也在增加。

更改集最多的开发人员
Matthias Clasen 60 24.7%
Philip Withnall 44 18.1%
Chun-wei Fan 18 7.4%
Mario Sanchez Prada 10 4.1%
Allison Lortie 7 2.9%
Ruslan Izhbulatov 7 2.9%
Emmanuele Bassi 6 2.5%
Krzesimir Nowak 6 2.5%
Jonh Wendell 5 2.1%
Cosimo Cecchi 5 2.1%
Simon McVittie 4 1.6%
Ondrej Holy 4 1.6%
Christoph Reiter 4 1.6%
Rico Tzschichholz 3 1.2%
Dan Winship 3 1.2%
Aurélien Zanelli 3 1.2%
Kjell Ahlstedt 2 0.8%
Piotr Drąg 2 0.8%
Colin Walters 2 0.8%
Emilio Pozuelo Monfort 2 0.8%
更改行数最多的开发人员
Matthias Clasen 7797 53.6%
Philip Withnall 2736 18.8%
Cosimo Cecchi 767 5.3%
Chun-wei Fan 674 4.6%
Mario Sanchez Prada 418 2.9%
Allison Lortie 365 2.5%
Christoph Reiter 319 2.2%
Krzesimir Nowak 220 1.5%
Jonh Wendell 178 1.2%
Ruslan Izhbulatov 163 1.1%
Marc-Antoine Perennou 142 1.0%
Emmanuele Bassi 104 0.7%
Tim-Philipp Müller 81 0.6%
Benjamin Otte 79 0.5%
Ondrej Holy 48 0.3%
Giovanni Campagna 43 0.3%
Jeremy Whiting 34 0.2%
Debarshi Ray 33 0.2%
Stephan Bergmann 32 0.2%
Christian Persch 30 0.2%

Matthias Clasen 和 Philip Withnall 是本周期最大的贡献者。Matthias 致力于门户的实现,允许沙盒应用程序访问系统服务;Philip 致力于新的结构化日志 API。

GTK+

GTK+ 收到了 75 位开发人员的贡献

gtk-contributors-3-22

贡献者人数呈下降趋势,并且考虑到更改的数量也有所减少,这很可能是 3.22 长期版本整体稳定过程的反映。

更改集最多的开发人员
Matthias Clasen 369 37.3%
Lapo Calamandrei 73 7.4%
Carlos Garnacho 69 7.0%
Timm Bäder 67 6.8%
Emmanuele Bassi 60 6.1%
Ruslan Izhbulatov 30 3.0%
Jonas Ådahl 28 2.8%
Benjamin Otte 25 2.5%
Olivier Fourdan 21 2.1%
Matt Watson 21 2.1%
Sébastien Wilmet 18 1.8%
Chun-wei Fan 13 1.3%
Andreas Pokorny 12 1.2%
Georges Basile Stavracas Neto 12 1.2%
Christian Hergert 12 1.2%
Piotr Drąg 11 1.1%
Tristan Van Berkom 11 1.1%
Ray Strode 10 1.0%
Stephen Chandler Paul 9 0.9%
William Hua 8 0.8%
更改行数最多的开发人员
Matthias Clasen 14378 28.2%
William Hua 6212 12.2%
Ruslan Izhbulatov 5222 10.2%
Lapo Calamandrei 4383 8.6%
Carlos Garnacho 3510 6.9%
Emmanuele Bassi 1947 3.8%
Matt Watson 1811 3.6%
Georges Basile Stavracas Neto 1805 3.5%
Jonas Ådahl 1647 3.2%
Chun-wei Fan 1195 2.3%
Stephen Chandler Paul 1099 2.2%
Timm Bäder 1018 2.0%
Sébastien Wilmet 865 1.7%
Benjamin Otte 793 1.6%
Javier Jardón 655 1.3%
Alexander Larsson 486 1.0%
Andreas Pokorny 358 0.7%
Tristan Van Berkom 333 0.7%
Jakub Steiner 317 0.6%
Mohammed Sadiq 298 0.6%

就像他在 GLib 中所做的那样,Matthias 致力于在 GTK+ 中实现对门户的支持,尤其是那些需要用户交互的门户,如文件选择和打印;Carlos Garnacho 致力于 Wayland 中的图形平板电脑支持;Jonas Ådahl 和 Olivier Fourdan 致力于 Wayland 后端的窗口系统问题;William Hua 致力于改进 Mir 后端;Ruslan Izhbulatov 和 Chun-wei Fan 致力于 Windows 后端,尤其是在键盘输入方面;Emmanuele 致力于向 GdkGLContext API 添加 GLES 支持;Timm Bäder 致力于 GtkPopover;Matt Watson 致力于 GtkStack 和内部动画处理。

从属关系

像往常一样,如果没有各个公司的贡献,这些更改中的大部分是不可能实现的。

对于 GLib

按雇主划分的顶级变更集贡献者
红帽 84 34.6%
(未知) 78 32.1%
Collabora 43 17.7%
Endless 22 9.1%
Canonical 12 4.9%
Centricular 2 0.8%
英特尔 2 0.8%
拥有黑客最多的雇主
(未知) 33 52.4%
红帽 14 22.2%
Collabora 4 6.3%
Endless 4 6.3%
Canonical 4 6.3%
Centricular 2 3.2%
英特尔 2 3.2%

对于 GTK+

按雇主划分的顶级变更集贡献者
红帽 548 55.4%
(未知) 333 33.7%
Endless 97 9.8%
Collabora 6 0.6%
Canonical 4 0.4%
Centricular 1 0.1%
拥有黑客最多的雇主
(未知) 49 63.6%
红帽 16 20.8%
Endless 6 7.8%
Collabora 3 3.9%
Canonical 2 2.6%
Centricular 1 1.3%