惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks
Martin Fowler
Martin Fowler
宝玉的分享
宝玉的分享
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
MIT News - Artificial intelligence
U
Unit 42
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
I
InfoQ
WordPress大学
WordPress大学
H
Help Net Security
D
Docker
B
Blog
腾讯CDC
A
About on SuperTechFans
Recent Announcements
Recent Announcements
雷峰网
雷峰网
有赞技术团队
有赞技术团队
C
Check Point Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC

inkscape:windows_ci_14x commits

Update WIndows dependencies to r180 (995a0ec3) · Commits · René de Hesselle / inkscape · GitLab Fix Welcome dialog stacking up when run more than once (eab9c6d5) · Commits · René de Hesselle / inkscape · GitLab Edit label and tooltip for Preserve Shape setting (4c992ff3) · Commits · René de Hesselle / inkscape · GitLab update translations (9f8f2fec) · Commits · René de Hesselle / inkscape · GitLab Fix missing signal blocking in page toolbar (d5533a4b) · Commits · René de Hesselle / inkscape · GitLab Convert libuemf to a git submodule (22344d42) · Commits · René de Hesselle / inkscape · GitLab update translations (f5993d7c) · Commits · René de Hesselle / inkscape · GitLab update translations (fcd03438) · Commits · René de Hesselle / inkscape · GitLab Fix: request display update when removing child from group (6908c07a) · Commits · René de Hesselle / inkscape · GitLab Make po submodule shallow (90eced57) · Commits · René de Hesselle / inkscape · GitLab 1.4.3 (0d15f750) · Commits · René de Hesselle / inkscape · GitLab update translations (4d3a6d61) · Commits · René de Hesselle / inkscape · GitLab Update tutorials and man page for Inkscape 1.4.3 (excluding French) (bec26502) · Commits · René de Hesselle / inkscape · GitLab Add GioWin32-2.0.typelib to Windows (eb2146c6) · Commits · René de Hesselle / inkscape · GitLab Revert the backport of a fix causing regressions in textPath (7d1c0165) · Commits · René de Hesselle / inkscape · GitLab update translations (8a1e7745) · Commits · René de Hesselle / inkscape · GitLab Update Windows dependencies to r168 (9500139e) · Commits · René de Hesselle / inkscape · GitLab Build GraphicsMagick on Windows ourselves again (2ea69ea8) · Commits · René de Hesselle / inkscape · GitLab Prepare 1.4.3 (e2afff01) · Commits · René de Hesselle / inkscape · GitLab Update docs for 1.4.3rc (ea3d7619) · Commits · René de Hesselle / inkscape · GitLab Fix crash on MacOS when opening file by right clicking on file. (fe96d51c) · Commits · René de Hesselle / inkscape · GitLab Update macOS build pipeline to v0.82-2-g21f3e2d (56605ae7) · Commits · René de Hesselle / inkscape · GitLab Fix commands toolbar glitching at exact size (b8376295) · Commits · René de Hesselle / inkscape · GitLab Add commands toolbar to automatic toolbar policy (c37cea70) · Commits · René de Hesselle / inkscape · GitLab update translations (dfc0fde0) · Commits · René de Hesselle / inkscape · GitLab Fix welcome dialog graphics (8d76d570) · Commits · René de Hesselle / inkscape · GitLab Fix code getting items under cursor (441f5bfb) · Commits · René de Hesselle / inkscape · GitLab Make libdepixelize a submodule (09a2712d) · Commits · René de Hesselle / inkscape · GitLab Handle `xml:lang`/`lang` attribute updates (7fa5d668) · Commits · René de Hesselle / inkscape · GitLab Add missed 1.4.3 artwork (9d406cab) · Commits · René de Hesselle / inkscape · GitLab
Fix keyboard navigation in Objects dialog (38acd49e) · Co...
Wen-Wei Kao · 2026-03-18 · via inkscape:windows_ci_14x commits
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@
 */

#include <cmath>
#include <gtk/gtk.h>
#include <iomanip>
#include <string>
#include <glibmm/i18n.h>
@@ -1377,6 +1378,28 @@ gboolean ObjectsPanel::on_tree_key_pressed(GtkEventControllerKey const * const c
            if (shift) {
                _activateAction("layer-raise", "selection-stack-up");
                return true;
            } else {
                if (!path.prev()) {
                    if (path.size() > 1) {
                        path.up();
                    }
                } else {
                    // if the node is expanded navigate to the last child item
                    while (_tree.row_expanded(path)) {
                        auto model = _tree.get_model();
                        auto c_model = model->gobj();
                        auto iter = model->get_iter(path);
                        auto c_iter = iter.gobj();
                        auto count = std::to_string(gtk_tree_model_iter_n_children(c_model, c_iter) - 1);
                        auto new_path = path.to_string() + ":" + count;
                        path = Gtk::TreePath(new_path);
                    }
                }

                _tree.set_cursor(path);
                if (!shift)
                    selectCursorItem(Gdk::ModifierType(state));
                return true;
            }
            break;
        case GDK_KEY_Down:
@@ -1384,7 +1407,40 @@ gboolean ObjectsPanel::on_tree_key_pressed(GtkEventControllerKey const * const c
            if (shift) {
                _activateAction("layer-lower", "selection-stack-down");
                return true;
            } else {
                // if a row is expanded, go into its children
                if (_tree.row_expanded(path)) {
                    path.down();
                } else {
                    // test if there is a next iter
                    auto model = _tree.get_model();
                    auto c_model = model->gobj();
                    auto iter = model->get_iter(path);
                    auto c_iter = iter.gobj();
                    if (gtk_tree_model_iter_next(c_model, c_iter)) {
                        path.next();
                    } else {
                        // if not, try going to the next iter of the parent
                        if (path.size() > 1) {
                            path.up();
                            c_iter = model->get_iter(path).gobj();
                            if (gtk_tree_model_iter_next(c_model, c_iter))
                                path.next();
                        }
                    }
                }

                // don't loop back up to top from the bottom of the tree
                if (path.to_string() == "0")
                    return true;

                _tree.set_cursor(path);
                if (!shift)
                    selectCursorItem(Gdk::ModifierType(state));
                return true;
            }
            break;

        case GDK_KEY_Return:
            if (auto item = getSelection()->singleItem()) {
                if (auto watcher = getWatcher(item->getRepr())) {