本周 GTK+ – 26

在上周,GTK+ 的 master 分支有 40 次提交,添加了 1551 行代码,删除了 1998 行代码。

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

在 master 分支上

  • 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 改进更新了 High Contrast 和 Adwaita 主题
修复的错误
  • 774114 即使仅更改窗口的内容,也会重新绘制窗口阴影
  • 774695 GtkProgressbar 需要 full 和 empty 类
  • 774265 Wintab 设备没有倾斜
  • 774699 [wintab,潜在的段错误]:列表迭代回归导致在查找期间忽略奇数索引设备,例如不显示压力
  • 775038 构建:将 wayland 添加到 GSK 的依赖项
  • 774917 [wayland] 子表面需要相对于其父级放置
  • 774893 启动 GtkInspector 时,应用程序字体大小缩放会被限制为 1.00
  • 774939 GtkLabelAccessible:在设置父级之前初始化链接
  • 774760 检查器:确保控制器是 GtkGesture
  • 774686 GtkMenu 不会取消引用其创建的所有 GtkCheckMenuItem
  • 774743 GtkNotebook 不会取消引用其创建的所有 GtkBuiltinIcon
  • 774790 GtkTextHandle 不会取消引用它引用的所有 GtkAdjustment
参与

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

本周 GTK+ – 25

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

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

在 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 [补丁] 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 在 wiki 上概述了 GSK 的工作项列表
  • GTK+ 路线图可在 wiki 上找到。
值得注意的更改

在 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 在 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 还将所有 get_preferred_* 系列的虚函数替换为单个 GtkWidgetClass.measure 虚函数,从而简化了小部件的实现。
  • 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] 样式设置信号问题
  • 773246 css 颜色定义文档中的拼写错误
  • 773180 不要猜测我们的 GDK GL 上下文是否是 GLES
  • 773113 tests:通过加载正确的图标修复剪贴板测试
  • 771694 GtkSourceView 完成弹出窗口未显示,未找到抓取的席位
  • 771205 具有圆形样式类的按钮底部会突然出现裁剪的阴影
参与

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

本周 GTK+ – 20

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

计划和状态
  • Benjamin 将他的 wip/otte/gtk4 分支合并到 master 中,该分支删除了各种已弃用的 GDK 和 GTK+ API。
  • Timm 将他的 wip/baedert/box 分支的部分合并到 master 中,该分支删除了已弃用的主题引擎 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+ 的 master 分支有 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 稳定分支并行安装。
  • 用于基于 autotools 的构建系统的旧且已弃用的 AM_PATH_GTK_3_0 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+ – 18

在上周,GTK+ 的 master 分支有 33 次提交,添加了 9362 行代码,删除了 8025 行代码。

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

修复的错误

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

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

本周 GTK+ – 17

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

计划和状态
  • GTK+ 路线图可在 wiki 上找到。
值得注意的更改
  • 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+。

本周 GTK+ – 16

在过去的一周中,GTK+ 的主分支有 32 次提交,增加了 5125 行代码,删除了 4393 行代码。

计划和状态
  • Matthias 发布了 GTK+ 3.21.5,这很可能是 3.22.0 版本之前的最后一个开发者快照。
  • GTK+ 路线图可在 wiki 上找到。
值得注意的更改
  • GTK+ 需要 1.7 版本的 Wayland 协议 定义,才能使用 xdg_shell 协议的 v6 版本。
  • GtkScrolledWindow 现在可以选择将其子项的首选自然大小传播给父项。

修复的错误

  • 770550 gtkplacessidebar:修复信号编组
  • 770458 GtkAboutDialog 在使用长荣誉列表和 GtkScrolledWindow 时出现问题
  • 770307 关闭 glade 项目时崩溃
  • 770624 [补丁] 修复拼写错误。
  • 770745 wayland:当应用程序尝试错误地映射弹出窗口时发出警告
  • 769498 滚动条已损坏
  • 770703 修复在 GtkListBox 上使用 page-down 时崩溃的问题
  • 770614 在高对比度主题中,值为 0 的 GtkScale:警告:为节点高亮分配负内容宽度/高度
  • 770849 带有填充的 GtkLabel 损坏
  • 766569 为 GTK_SCROLL_NATURAL 子项提供更好的尺寸请求
参与

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