Git commit 38e8c033352b6bacdf2bf9fb9be24281acd6eb32 by Boudewijn Rempt Pushed by rempt into branch master Fix the boundaries of the pattern. M +8 -4 krita/ui/kis_custom_pattern.cc http://commits.kde.org/47e7010d/38e8c033352b6bacdf2bf9fb9be24281acd6eb32 diff --git a/krita/ui/kis_custom_pattern.cc b/krita/ui/kis_custom_pattern.cc index 29e01c8..722d43d 100644 --- a/krita/ui/kis_custom_pattern.cc +++ b/krita/ui/kis_custom_pattern.cc @@ -145,13 +145,17 @@ void KisCustomPattern::createPattern() KisPaintDeviceSP dev; QString name; + KisImageWSP image = m_view->image(); + if (!image) return; + QRect rc = image->bounds(); + if (cmbSource->currentIndex() == 0) { dev = m_view->activeNode()->projection(); name = m_view->activeNode()->name(); + QRect rc2 = dev->exactBounds(); + rc = rc.intersected(rc2); } else { - KisImageWSP image = m_view->image(); - if (!image) return; image->lock(); dev = image->projection(); image->unlock(); @@ -159,7 +163,7 @@ void KisCustomPattern::createPattern() } if (!dev) return; // warn when creating large patterns - QRect rc = dev->exactBounds(); + QSize size = rc.size(); if (size.width() > 1000 || size.height() > 1000) { lblWarning->setText(i18n("The current image is too big to create a pattern. " @@ -167,7 +171,7 @@ void KisCustomPattern::createPattern() size.scale(1000, 1000, Qt::KeepAspectRatio); } - m_pattern = new KisPattern(dev->createThumbnail(size.width(), size.height()), name); + m_pattern = new KisPattern(dev->createThumbnail(size.width(), size.height(), 0, rc), name); }