本周 GTK+ – 25

在上周,GTK+ 的 master 分支有 167 次提交,增加了 8048 行代码,删除了 6858 行代码。

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

在 master 分支上

  • GtkFileChooser:local-only 属性的默认值现在为 FALSE,这意味着文件选择对话框将自动显示非本地资源。
  • Benjamin Otte 引入了 GtkSnapshot API,它作为小部件的 GskRenderNode 构建器,旨在取代即时模式的 gtk_render_* 系列函数。
  • Benjamin 还更改了 GtkDrawingArea 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+ 路线图可以在维基上找到。
值得注意的更改

在 master 分支上

  • 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 还从 GtkComboBox 中删除了 appears-as-list 自定义样式属性

在 3.22 稳定分支上

  • Matthias Clasen 发布了 GTK+ 3.22.3
  • Chun-wei Fan 合并了 Windows 的 HiDPI 显示支持
修复的错误
  • 774097 GtkPrintOperation 不应截断作业名称
  • 772075 GTK+ 在 Wayland 下比在 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+ – 23

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

计划和状态
  • Benjamin Otte 致力于澄清 GTK+ 和 gsk 中使用的各种坐标系之间的关系。
  • Benjamin 还在整个树中进行更改,为使所有小部件无窗口做好准备。
  • Emmanule Bassi 正在为 CSS 渲染开发更精细的 gsk 渲染节点。
  • GTK+ 路线图可以在维基上找到。
值得注意的更改
  • Benjamin Otte 在 GTK+ 检查器中添加了一个帧记录器。有关更多信息,请参见此帖子
  • Timm Bäder 和 Benjamin 将更多小部件转换为使用带有 gsk 渲染节点的间接渲染。
  • Matthias Clasen 将 GtkTextAttributes 结构设为私有,从而可以进一步清理并删除已弃用的 GdkColor 类型。
  • Benjamin 删除了视觉效果。
修复的错误
  • 773885 按下 Escape 键时弹出 GtkPopover
  • 773299确保 GTK+-4.x 在 Windows 上构建和工作
  • 773274[Wayland] gdk_wayland_window_attach_image() 下的崩溃
  • 768081为 GDK-Win32 启用 HiDPI 支持
  • 773857 – X11:添加对 gdk_window_fullscreen_on_monitor 的支持
  • 773799GtkLevelBar 不会更新离散模式下的块
  • 773954gtkstylecontext:阐明 getter 的内存分配行为
  • 773903gtk.h 和 gtktextiter.h 包含私有的 gtktextattributes.h
参与其中

有兴趣参与 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,这些 API 已从 GtkWidget 移动到 GdkDisplay
修复的错误
  • 773479 GtkShortcutType 开发人员文档中的拼写错误
  • 773100 将 libgdk.so 合并到 libgtk.so 中
  • 773528 改进 Windows 上的 GL 支持
参与其中

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

本周 GTK+ – 21

在上周,GTK+ 的主分支收到了 335 次提交,增加了 13631 行代码,删除了 37699 行代码。

计划和状态
  • Emmanuele 将他的 wip/ebassi/gsk-renderer 分支合并到了 master 分支,从而有效地将 GSK 添加到了 API 中;目前正在努力改进其性能配置文件,以及将更多小部件移植到 GskRenderNode API。
  • Benjamin 为输入和子窗口添加了新的 GdkWindow 构造函数,这些构造函数最终将取代通用的 gdk_window_new() API。
  • Timm 从 GTK+ 中删除了更多已弃用的 API。
  • Timm 还将所有 get_preferred_* 系列的虚拟函数替换为单个 GtkWidgetClass.measure 虚拟函数,从而简化了小部件的实现。
  • Matthias 为希望将其代码从 GTK+ 3.x 移植到 GTK+ 4.x 的应用程序开发人员启动了新的迁移指南。
  • Chun-wei Fan 按照弃用和 API 更改更新了 GDK 的 Windows 后端。
  • GTK+ 路线图可以在维基上找到。
值得注意的更改
  • 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+ 路线图可以在维基上找到。
值得注意的更改
  • 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+ 路线图可以在维基上找到。
值得注意的更改
  • 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

按雇主划分的顶级代码更改贡献者
Red Hat 84 34.6%
(未知) 78 32.1%
Collabora 43 17.7%
Endless 22 9.1%
Canonical 12 4.9%
Centricular 2 0.8%
Intel 2 0.8%
拥有最多黑客的雇主
(未知) 33 52.4%
Red Hat 14 22.2%
Collabora 4 6.3%
Endless 4 6.3%
Canonical 4 6.3%
Centricular 2 3.2%
Intel 2 3.2%

对于 GTK+

按雇主划分的顶级代码更改贡献者
Red Hat 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%
Red Hat 16 20.8%
Endless 6 7.8%
Collabora 3 3.9%
Canonical 2 2.6%
Centricular 1 1.3%

本周 GTK+ – 18

在过去的一周中,GTK+ 的 master 分支有 33 次提交,增加了 9362 行代码,删除了 8025 行代码。

计划和状态
  • Matthias 发布了 GTK+ 3.21.6,这是 9 月 21 日发布的 3.22.0 版本之前的最后一个快照。
  • GTK+ 路线图可以在维基上找到。
值得注意的更改
  • 本周我们主要进行了属性描述和用户可见消息的翻译,为 3.22 版本的发布做准备。
  • Ruslan 修复了 Windows 上 GdkEventKey.is_modifier() 结构字段,将 Ctrl、Alt 和 Shift 键报告为修饰符。
  • Jonas Ådahl 在 Wayland 下为组合框和其他弹出窗口进行了最后的修复。

修复的错误

  • 771117 gtk3 3.21.5 破坏了下拉列表的显示,需要滚动才能看到内容
  • 771349 在 X11 上,gdk_screen_get_monitor_scale_factor 在 GTK 3.21+ 上始终返回 1
  • 771463 变量可能在 gtk_widget_render 中未初始化使用
  • 602773 对于 Shift、Ctrl、Alt 键,GdkEventKey.is_modifier 为 0
参与其中

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

本周 GTK+ – 17

在过去的一周中,GTK+ 的 master 分支有 41 次提交,增加了 19871 行代码,删除了 16800 行代码。

计划和状态
  • GTK+ 路线图可以在维基上找到。
值得注意的更改
  • Matthias 为 GTK+ 附带的小型二进制文件(如 gtk-launchgtk3-demo)添加了 --version 命令行开关;这允许在系统上检查 GTK+ 的版本,而无需借助分发包或开发文件。
  • GDK 的 X11 后端现在可以正确检测 VirtualBox 中的 XRandR 1.5 支持。

修复的错误

  • 767391 cross-fade() 不进行交叉淡化
  • 771033 自 3.21.2 起,GtkStatusIcon 无法在 VirtualBox 中显示激活菜单
  • 764979 在取消密码对话框后,连接到服务器变得不可用
  • 770278 使示例应用程序现代化
  • 770508 [回归][二分查找] GtkTreeView::grab_focus_and_unset_draw_keyfocus() 中的最近更改破坏了快捷键分配
  • 770906 Wayland:从菜单/弹出窗口取消映射顶层可能会导致协议错误
参与其中

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