diff --git a/krita/krita.action b/krita/krita.action --- a/krita/krita.action +++ b/krita/krita.action @@ -2738,7 +2738,7 @@ Shear Layer Shear Layer - 100000 + 1000 1 false diff --git a/libs/image/kis_image.cc b/libs/image/kis_image.cc --- a/libs/image/kis_image.cc +++ b/libs/image/kis_image.cc @@ -822,8 +822,13 @@ { QPointF shearOrigin = QRectF(bounds()).center(); - shearImpl(kundo2_i18n("Shear layer"), node, false, - angleX, angleY, shearOrigin); + if (node->inherits("KisMask")) { + shearImpl(kundo2_i18n("Shear Mask"), node, false, + angleX, angleY, shearOrigin); + } else { + shearImpl(kundo2_i18n("Shear Layer"), node, false, + angleX, angleY, shearOrigin); + } } void KisImage::shear(double angleX, double angleY) diff --git a/libs/ui/kis_layer_manager.h b/libs/ui/kis_layer_manager.h --- a/libs/ui/kis_layer_manager.h +++ b/libs/ui/kis_layer_manager.h @@ -70,7 +70,6 @@ void updateGUI(); void rotateLayer(double radians); - void shearLayer(double angleX, double angleY); private Q_SLOTS: diff --git a/libs/ui/kis_layer_manager.cc b/libs/ui/kis_layer_manager.cc --- a/libs/ui/kis_layer_manager.cc +++ b/libs/ui/kis_layer_manager.cc @@ -575,18 +575,6 @@ m_view->image()->rotateNode(layer, radians); } -void KisLayerManager::shearLayer(double angleX, double angleY) -{ - if (!m_view->image()) return; - - KisLayerSP layer = activeLayer(); - if (!layer) return; - - if (!m_view->blockUntilOperationsFinished(m_view->image())) return; - - m_view->image()->shearNode(layer, angleX, angleY); -} - void KisLayerManager::flattenImage() { KisImageSP image = m_view->image(); 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 @@ -912,8 +912,14 @@ void KisNodeManager::shear(double angleX, double angleY) { - // XXX: implement shear for masks as well - m_d->layerManager.shearLayer(angleX, angleY); + if (!m_d->view->image()) return; + + KisNodeSP node = activeNode(); + if (!node) return; + + if(!m_d->view->blockUntilOperationsFinished(m_d->view->image())) return; + + m_d->view->image()->shearNode(node, angleX, angleY); } void KisNodeManager::scale(double sx, double sy, KisFilterStrategy *filterStrategy)