diff --git a/libs/ui/kis_node_manager.cpp b/libs/ui/kis_node_manager.cpp --- a/libs/ui/kis_node_manager.cpp +++ b/libs/ui/kis_node_manager.cpp @@ -835,6 +835,10 @@ node = node->firstChild(); } + if (node && node->childCount() > 0 && !node->isEditable()) { + node = node->firstChild(); + } + if (!node && activeNode->parent() && activeNode->parent()->parent()) { node = activeNode->parent(); } @@ -858,6 +862,9 @@ if (activeNode->childCount() > 0 && activeNode->isEditable()) { node = activeNode->lastChild(); } + else if(activeNode->childCount() > 0 && !activeNode->isEditable()) { + node = activeNode->lastChild(); + } else { node = activeNode->prevSibling(); }