本周 GTK+ – 3

在上周,GTK+ 有 26 次提交,增加了 5081 行代码,删除了 3618 行代码。

计划和状态
值得注意的更改
  • 文档方面进行了各种改进,特别是在 CSS 参考和 GTK+ 2.x → 3.x 迁移指南方面。
  • Matthias Clasen 在 API 参考中添加了一个部分,该部分映射了 README 文件中的发行说明;该部分将用作从 3.x 迁移到 GTK+ 未来主要版本的迁移指南的起点。
  • gtk-builder-tool 实用程序允许验证、简化、预览或检查 UI 描述文件,现在在将属性简化为默认值时,不会修改 GtkDialog:border-width 属性。
已修复的错误
  • 错误 759037 GtkInfoBar:文档未更新,背景颜色和消息类型
  • 错误 747206 gtktextview:关于如何在两个段落之间获取行间距的说明
  • 错误 766643 在未映射并等待配置事件时窗口冻结
  • 错误 766122 当显示时,重复使用的文件选择器一半的时间显示 $pwd
  • 错误 766878 placesview:不要将图标名称标记为可翻译
  • 错误 764203 “textview border”节点的默认背景颜色
参与其中

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

本周 GTK+ – 2

在上周,GTK+ 有 90 次提交,增加了 8502 行代码,删除了 7914 行代码。

计划和状态
  • Matthias Clasen 使用他的 原型分支更新了 GTK+ 路线图中关于“标签条”GtkStack 控制器小部件的条目。
值得注意的更改
  • Matthias Clasen 和 Lapo Calamandrei 对 GtkScale 提交了一些 CSS 更改,这些更改是为了涵盖所有边上的标记的所有可能情况。此外,GtkScale 在显示值时使用的 _value_ 节点在文档中缺失,现在已添加。
  • Debarshi Ray 修复了 GtkScrolledWindow 中使用 GTK_POLICY_NEVER 时的一些分配问题,这些问题是在开发 libvte 时发现的。
  • Matthias Clasen 为 GTK 支持的 CSS 光标名称列表添加了两个新的光标名称,context-menuno-drop;这些光标由 Adwaita 提供。
  • Matthew Waters 修复了 GDK 以使用线程安全的 Wayland 调度 API;这在多个线程轮询 Wayland 文件描述符时特别有用。
  • Olivier Fourdan 致力于允许 Wayland 后端在询问 GDK 窗口显示在哪个监视器上时尝试返回合理的值;这仍在进行中,可能需要协议扩展以避免可能导致误报的猜测。
  • Ondrej Holy 致力于 GIO、GVFS 和 GTK+,以确保冷插拔驱动器在文件选择对话框的侧边栏中被适当地检测为可移动设备。
  • Javier Jardón 最终更新了 GTK+ 以使用上游 gettext,而不是 GLib 修改的宏和构建文件。
已修复的错误
  • 错误 373745 不要使用 AM_GLIB_DEFINE_LOCALEDIR(GTK_LOCALEDIR),而使用 gettext
  • 错误 766405 在 wayland 上,Stack 在小部件工厂中显示不正确的帧
  • 错误 763852 gdk/wayland:事件源不是多线程感知的
  • 错误 766314 触摸抬起后出现虚假的 leave-notify 事件
  • 错误 766442 窗口之间的拖放操作损坏
  • 错误 766440 滑块按钮停止识别和适当渲染带有或不带有标记的滑块
  • 错误 766566 Wayland:gdk_screen_get_monitor_at_window() 在 Wayland 下不可靠
  • 错误 766336 使用橡皮筋选择行时崩溃
  • 错误 765924 改进外部驱动器检测
  • 错误 766642 HeaderBars 中的开关集成不佳
  • 错误 766737 stack:仅在必要时映射子项
  • 错误 766323 如果 GTKPopover 在重新父级化时可见,则会发出警告
  • 错误 766782 在 Broadway 中使用 OpenGL 会导致段错误
参与其中

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

GTK+ 中的光标

历史

光标在 Linux 中一直是一个大问题。

X11 光标字体 是从远古时代传承下来的,给我们带来了像 gumby () 或 trek () 这样的奇葩。不幸的是,这种情况随着 GdkCursorType 枚举和 gdk_cursor_new() 函数冻结到了 GDK API 中。

后来,出现了 Xcursor 库。它发明了自己的图像格式来存储光标,并为我们带来了光标主题,但没有回答“我的光标主题应该提供哪些光标?”的问题。

由于没有推荐的光标名称官方列表,光标主题经常提供在野外发现的所有光标名称变体。例如,这里是 oxygen 光标主题中包含的光标列表。如果您想知道,此列表中的十六进制字符串是 Xcursor 的一个巧妙技巧,可以在使用上述光标字体中的光标的核心 X11 应用程序下改装主题光标。

CSS 来拯救

大约一年前,我们决定最终改进 GTK+ 光标的故事。值得庆幸的是,CSS3 规范包含一个体面的 光标名称列表,可以合理地预期在各种平台上可用。

标准光标由于 GdkCursorType 枚举包含太多无意义的东西并且不容易扩展,我们决定使 gdk_cursor_new_from_name() 成为获取光标的推荐 API。此函数的文档现在列出了 CSS 光标名称(请点击上面的链接查看),并且各种 GDK 后端中的光标处理代码会尽力为所有这些名称提供有意义的光标。

在某些平台上(例如使用随机光标主题的 X11),如果主题中不存在某个光标,我们可能不得不回退到默认的箭头光标。作为光标代码的此通用大修的一部分,Windows 后端增加了对光标主题的支持。

GTK+ 本身现在专门使用带有标准光标名称的 gdk_cursor_new_from_name()。并且 gtk3-demo 包含一个演示,其中显示所有标准光标并允许您试用它们。上面的屏幕截图显示了它。

此处描述的更改已进入 GTK+ 3.18,该版本大约在 9 个月前发布。

您应该在应用程序中执行的操作

很可能,您不需要做任何事情!GTK+ 部件本身会使用合适的鼠标光标,您无需额外操作即可从中受益。

如果您的应用程序出于某种原因创建了自己的光标,您应该仔细检查上面显示的某个标准光标是否适合您。使用标准光标可确保无论您的应用程序运行在哪个平台,以及用户选择了哪个光标主题,您都会获得合适的光标。

请使用 gdk_cursor_new_from_name() 生成您的主题光标,因为这现在是此任务的首选 API。

本周 GTK+ – 1

2016 年 5 月 9 日至 2016 年 5 月 15 日这一周 GTK+ 的进展

在过去的一周里,GTK+ 提交了 51 次,增加了 5375 行代码,删除了 4970 行代码。

计划和状态

当我们逐步完成路线图上的项目时,3.22 开发周期正在加速。

值得注意的更改
  • Olivier Fourdan 修复了 GtkMenu 中的滚动事件处理,以确保它在 X11 和 Wayland 上关于平滑和离散滚动的行为保持一致。
  • 现在,“连接到服务器”帮助弹出窗口中可用的协议列表使用 GVFS 中支持的方案列表填充,这要归功于 Georges Basile Stavracas Neto。
  • Benjamin Otte 提交了一个 commit,使 GtkWidget 在未实现的部件上发出 style-updated 信号,而不是延迟到实现时;最初的行为是为了避免在构造期间进行太多无效化而做出的旧优化,但多年来样式系统已经得到了改进。
  • Timm Bäder 在各种部件(如 GtkListBoxGtkStackGtkToolbar)上提交了各种清理 commit。
已修复的错误
  • Bug 766166 gtk.css 中的按键绑定被忽略
  • Bug 766207 修复 C99 之前的编译器上的构建
  • Bug 765939 [Wayland] 在 GtkMenu 中使用触摸板滚动非常慢
  • Bug 756570 gtkplacesview 不再提供地址格式的指导
  • Bug 766120 Scale draw_value() 的对齐方式从中心/右(水平/垂直)更改为左对齐,导致明显的视觉退化
  • Bug 766233 当服务器不支持 XI2 时崩溃
  • Bug 766175 引号的翻译可能被 GTK 侧边栏误解
  • Bug 765700 使用 GtkPaned 会导致“代码如何知道要分配的大小?”
  • Bug 682080 Gtk:ERROR:gtktoolbar.c:2271:logical_to_physical: 断言失败: (logical == 0)
  • Bug 766458 widget: 修复 GtkLabelAccessible 的 NULL 链接。
参与其中

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

本周 GTK – 0

为了改进 GTK 团队与 GNOME 平台的其他部分以及应用程序开发人员之间的沟通,我们将开始编写关于 GTK 和核心 GNOME 平台的每周状态报告。

这些报告很大程度上受到了Servo 团队所写报告的启发。

您可以在每周一在此博客上看到一篇帖子;我们将关注重大变化;新贡献者;新功能或弃用;以及计划的活动。

如果您有疑问,请像往常一样,将其发送到 GTK 开发邮件列表

玩得开心!

你好,世界!(重演)

大家好,欢迎回到 GTK+ 开发博客。

在 3.0 版本发布后,我们已经有一段时间忽略了这个博客,但我们认为有一个地方可以讨论 GTK+(以及核心 GNOME 平台的其他部分)、它的变化以及它的发展方向是很重要的。

展望未来,我们不会将此博客用于公告——如果您需要公告,可以订阅gnome-announcement 邮件列表。相反,我们将利用这个空间来展示 GTK+ 中正在发生的事情;讨论路线图;重点介绍一些新功能,也许还有一些不太为人所知的老功能。

请继续关注,并且像往常一样:玩得开心!