Encountered when using the Move Tool on a child layer of a group with a Transparency Mask. Movements did not appear to apply until the group was hidden and unhidden or the file saved. Reproducible: Always Steps to Reproduce: 1. Create a layer with some visible content 2. Create a group layer 3. Make the layer with the content be a child of the group layer 4. With the group layer selected, create a transparency mask layer 5. Select the child layer 6. Attempt to use the Move Tool to translate the child layer Actual Results: Child layer does not appear to move. Hiding/unhiding parent layer or parent transparency mask forces and update so you can see the child layer's actual position (it does, in fact, move, but you can't see it until the update is forced) Expected Results: Child layer should move as the tool is used Using krita 3.0 installed with the default package manager in Manjaro linux in an otherwise standard installation of the distro.
Created attachment 100949 [details] (Video example) (krita-3.0.99.91-Beta-x86_64.appimage - Ubuntu 14.04) I think I can confirm: moving layers of a group layer with transparency mask is not apparent on canvas.
I can confirm as well.
*** Bug 376774 has been marked as a duplicate of this bug. ***
I can confirm too https://youtu.be/BhWWIYlobbk
I can confirm this bug as well. (Krita 3.2.1 x64 Portable, on Windows 7 x64)
Trying this on an image where the only paint layer is in a group gives an assert: ASSERT: "fastBitBltPossible(src)" in file /home/boud/dev/krita/libs/image/kis_paint_device.cc, line 195 #0 0x00007fffeb453120 in raise () at /lib64/libc.so.6 #1 0x00007fffeb454701 in abort () at /lib64/libc.so.6 #2 0x00007fffec1411eb in qErrnoWarning(char const*, ...) () at /usr/lib64/libQt5Core.so.5 #3 0x00007fffec1409e1 in qt_assert_x(char const*, char const*, char const*, int) () at /usr/lib64/libQt5Core.so.5 #4 0x00007ffff4d28da8 in KisPaintDevice::Private::prepareClone(KisSharedPtr<KisPaintDevice>) (this=<optimized out>, src=...) at /home/boud/dev/krita/libs/image/kis_paint_device.cc:195 #5 0x00007ffff4d1a921 in KisPaintDevice::prepareClone(KisSharedPtr<KisPaintDevice>) (this=0x7fff7883cc60, src=...) at /home/boud/dev/krita/libs/image/kis_paint_device.cc:1067 #6 0x00007ffff4cc62b8 in KisCachedPaintDevice::getDevice(KisSharedPtr<KisPaintDevice>) (prototype=..., this=<optimized out>, this=<optimized out>) at /home/boud/dev/krita/libs/image/kis_cached_paint_device.h:36 #7 0x00007ffff4cc62b8 in KisMask::mergeInMaskInternal(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisSelection>, QRect const&, QRect const&, KisNode::PositionToFilthy) const (this=0x7fffd8008e50, projection=..., effectiveSelection=..., applyRect=..., preparedNeedRect=..., maskPos=<optimized out>) at /home/boud/dev/krita/libs/image/kis_mask.cc:321 #8 0x00007ffff4cc9709 in KisMask::apply(KisSharedPtr<KisPaintDevice>, QRect const&, QRect const&, KisNode::PositionToFilthy) const (this=0x7fffd8008e50, projection=..., applyRect=..., needRect=..., maskPos=maskPos@entry=KisNode::N_ABOVE_FILTHY) at /home/boud/dev/krita/libs/image/kis_mask.cc:304 #9 0x00007ffff4ca681a in KisLayer::applyMasks(KisSharedPtr<KisPaintDevice>, KisSharedPtr<KisPaintDevice>, QRect const&, KisSharedPtr<KisNode>, KisSharedPtr<KisNode>) const (this=this@entry=0xbd340c0, source=..., destination=..., requestedRect=..., filthyNode=..., lastNode=...) at /home/boud/dev/krita/libs/image/kis_layer.cc:816 #10 0x00007ffff4ca7226 in KisLayer::updateProjection(QRect const&, KisSharedPtr<KisNode>) (this=0xbd340c0, rect=..., filthyNode=...) at /home/boud/dev/krita/libs/image/kis_layer.cc:850 #11 0x00007ffff4cab55c in KisLayerProjectionPlane::recalculate(QRect const&, KisSharedPtr<KisNode>) (this=<optimized out>, rect=..., filthyNode=...) at /home/boud/dev/krita/libs/image/kis_layer_projection_plane.cpp:47 #12 0x00007ffff4c38339 in KisAsyncMerger::startMerge(KisBaseRectsWalker&, bool) (this=0x1ae85728, walker=..., notifyClones=<optimized out>) at /home/boud/dev/krita/libs/image/kis_async_merger.cpp:263 #13 0x00007ffff4e61464 in non-virtual thunk to KisUpdateJobItem::run() () at /home/boud/dev/i-krita/lib64/libkritaimage.so.18 #14 0x00007fffec168fa2 in () at /usr/lib64/libQt5Core.so.5 #15 0x00007fffec164832 in () at /usr/lib64/libQt5Core.so.5 #16 0x00007fffea4fb569 in start_thread () at /lib64/libpthread.so.0 #17 0x00007fffeb51585f in clone () at /lib64/libc.so.6 (gdb)
I've just retested, and this works for me now.