diff --git a/krita/krita.action b/krita/krita.action
--- a/krita/krita.action
+++ b/krita/krita.action
@@ -2096,6 +2096,18 @@
false
+
+
+ Activate previously selected layer
+
+ Activate previously selected layer
+ Activate previously selected layer
+ 1000
+ 0
+ ;
+ false
+
+
groupLayer
&Group Layer
diff --git a/libs/ui/kis_node_manager.h b/libs/ui/kis_node_manager.h
--- a/libs/ui/kis_node_manager.h
+++ b/libs/ui/kis_node_manager.h
@@ -177,6 +177,7 @@
void mirrorNode(KisNodeSP node, const KUndo2MagicString& commandName, Qt::Orientation orientation);
void activateNextNode();
void activatePreviousNode();
+ void switchToPreviouslyActiveNode();
/**
* move the active node up the nodestack.
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
@@ -106,6 +106,8 @@
KisNodeList selectedNodes;
QPointer nodeJuggler;
+ KisNodeWSP previouslyActiveNode;
+
bool activateNodeImpl(KisNodeSP node);
QSignalMapper nodeCreationSignalMapper;
@@ -144,8 +146,11 @@
imageView->setCurrentNode(0);
maskManager.activateMask(0);
layerManager.activateLayer(0);
+ previouslyActiveNode = q->activeNode();
} else {
+ previouslyActiveNode = q->activeNode();
+
KoShape * shape = view->document()->shapeForNode(node);
KIS_ASSERT_RECOVER_RETURN_VALUE(shape, false);
@@ -247,6 +252,9 @@
action = actionManager->createAction("activatePreviousLayer");
connect(action, SIGNAL(triggered()), this, SLOT(activatePreviousNode()));
+ action = actionManager->createAction("switchToPreviouslyActiveNode");
+ connect(action, SIGNAL(triggered()), this, SLOT(switchToPreviouslyActiveNode()));
+
action = actionManager->createAction("save_node_as_image");
connect(action, SIGNAL(triggered()), this, SLOT(saveNodeAsImage()));
@@ -868,6 +876,13 @@
}
}
+void KisNodeManager::switchToPreviouslyActiveNode()
+{
+ if (m_d->previouslyActiveNode && m_d->previouslyActiveNode->parent()) {
+ slotNonUiActivatedNode(m_d->previouslyActiveNode);
+ }
+}
+
void KisNodeManager::mergeLayer()
{
m_d->layerManager.mergeLayer();