Summary: | [subwindow mode] drag and drop a vector layer crashes Krita | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | David REVOY <info> |
Component: | Layers/Vector | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | amy, halla |
Priority: | NOR | Keywords: | regression, release_blocker |
Version: | nightly build (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Appimage | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/e1b32d773526983ee54a4edfafd146d30ff08b2a | Version Fixed In: | |
Sentry Crash Report: | |||
Bug Depends on: | 423752, 452146 | ||
Bug Blocks: | |||
Attachments: | ^ gdb 'thread apply all bt' log of the crash |
Duplicate by revival of 423752, when retrieving Krita node data from the clipboard, shape nodes happily ignore the image assigned in the call to KisMimeData::initializeExternalNode. This seems to go all the way to https://invent.kde.org/graphics/krita/-/commit/9475fe1d7301100ef9245da67f39e646bc1b394f. Regression tracked to 81f9b1aac89d3b00e5f357dd235e6c37f002f5fb: commit 81f9b1aac89d3b00e5f357dd235e6c37f002f5fb Author: Dmitry Kazakov <dimula73@gmail.com> Date: Thu Apr 7 12:35:23 2022 +0300 Fix initialization of image link in the pasted nodes I'm not sure this patch is safe enough for 5.0.x branch. BUG:452146 https://invent.kde.org/graphics/krita/-/commit/81f9b1aac89d3b00e5f357dd235e6c37f002f5fb#5c6b72611ab77b63397e0ec9999f50a231e504b5_223_225 removes the image reassignment for this particular case. Git commit 6531b6b666129cbbd0b61dadafd6bb27b6750629 by Dmitry Kazakov. Committed on 08/07/2022 at 15:28. Pushed by dkazakov into branch 'krita/5.1'. Fix D&D of the shape layers when src and dst resolutions differ We need to adjust the resolution of the shape layer to fix the new image in pixel measurements. M +13 -3 libs/ui/kis_mimedata.cpp M +1 -1 libs/ui/kis_mimedata.h https://invent.kde.org/graphics/krita/commit/6531b6b666129cbbd0b61dadafd6bb27b6750629 Git commit 39b5ef7907fe22b120b572fc49887ae83bde16b5 by Dmitry Kazakov. Committed on 08/07/2022 at 15:28. Pushed by dkazakov into branch 'krita/5.1'. Fix a crash when D&D a vector layer from one image to another The patch does several things 1) Removes "application/x-krita-node" mimedata completely. It was used to pass Krita nodes between multiple instances of Krita. Since we don't support multiinstance runs anymore, these types should go. (they failed in multiple usecases anyway) 2) Implements a special KisDetachedShapesViewConverter converter class that is attached to KisShapeLayerCanvasBase, when it has no image attached (that was an exact cause of the crash). Now, when the vector layer is placed into a mime data, its converter is replaced with the detached one to no rely on KisImage (which is deleted at that moment) M +1 -0 libs/ui/CMakeLists.txt A +19 -0 libs/ui/KisClonableViewConverter.h [License: GPL(v2.0+)] A +56 -0 libs/ui/KisDetachedShapesViewConverter.cpp [License: GPL(v2.0+)] A +42 -0 libs/ui/KisDetachedShapesViewConverter.h [License: GPL(v2.0+)] M +13 -14 libs/ui/KisView.cpp M +2 -2 libs/ui/KisWelcomePageWidget.cpp M +1 -4 libs/ui/flake/KisReferenceImagesLayer.cpp M +16 -7 libs/ui/flake/kis_shape_layer.cc M +0 -1 libs/ui/flake/kis_shape_layer.h M +48 -6 libs/ui/flake/kis_shape_layer_canvas.cpp M +11 -5 libs/ui/flake/kis_shape_layer_canvas.h M +2 -2 libs/ui/kis_clipboard.cc M +4 -9 libs/ui/kis_image_view_converter.cpp M +4 -8 libs/ui/kis_image_view_converter.h M +33 -87 libs/ui/kis_mimedata.cpp M +15 -12 libs/ui/kis_mimedata.h M +1 -1 libs/ui/kis_node_model.cpp https://invent.kde.org/graphics/krita/commit/39b5ef7907fe22b120b572fc49887ae83bde16b5 Git commit e1b32d773526983ee54a4edfafd146d30ff08b2a by Dmitry Kazakov. Committed on 08/07/2022 at 15:27. Pushed by dkazakov into branch 'master'. Fix a crash when D&D a vector layer from one image to another The patch does several things 1) Removes "application/x-krita-node" mimedata completely. It was used to pass Krita nodes between multiple instances of Krita. Since we don't support multiinstance runs anymore, these types should go. (they failed in multiple usecases anyway) 2) Implements a special KisDetachedShapesViewConverter converter class that is attached to KisShapeLayerCanvasBase, when it has no image attached (that was an exact cause of the crash). Now, when the vector layer is placed into a mime data, its converter is replaced with the detached one to no rely on KisImage (which is deleted at that moment) M +1 -0 libs/ui/CMakeLists.txt A +19 -0 libs/ui/KisClonableViewConverter.h [License: GPL(v2.0+)] A +56 -0 libs/ui/KisDetachedShapesViewConverter.cpp [License: GPL(v2.0+)] A +42 -0 libs/ui/KisDetachedShapesViewConverter.h [License: GPL(v2.0+)] M +13 -14 libs/ui/KisView.cpp M +2 -2 libs/ui/KisWelcomePageWidget.cpp M +1 -4 libs/ui/flake/KisReferenceImagesLayer.cpp M +16 -7 libs/ui/flake/kis_shape_layer.cc M +0 -1 libs/ui/flake/kis_shape_layer.h M +48 -6 libs/ui/flake/kis_shape_layer_canvas.cpp M +11 -5 libs/ui/flake/kis_shape_layer_canvas.h M +2 -2 libs/ui/kis_clipboard.cc M +4 -9 libs/ui/kis_image_view_converter.cpp M +4 -8 libs/ui/kis_image_view_converter.h M +33 -87 libs/ui/kis_mimedata.cpp M +15 -12 libs/ui/kis_mimedata.h M +1 -1 libs/ui/kis_node_model.cpp https://invent.kde.org/graphics/krita/commit/e1b32d773526983ee54a4edfafd146d30ff08b2a Git commit 25e1e1492c0c49424a539fe1a85b59c34ac4a821 by Dmitry Kazakov. Committed on 08/07/2022 at 15:27. Pushed by dkazakov into branch 'master'. Fix D&D of the shape layers when src and dst resolutions differ We need to adjust the resolution of the shape layer to fix the new image in pixel measurements. M +13 -3 libs/ui/kis_mimedata.cpp M +1 -1 libs/ui/kis_mimedata.h https://invent.kde.org/graphics/krita/commit/25e1e1492c0c49424a539fe1a85b59c34ac4a821 Git commit abaec2f7bba30800e22811057fb30b0ec0be78ae by L. E. Segovia. Committed on 18/08/2022 at 17:17. Pushed by lsegovia into branch 'master'. KisMimeData: remove leftover parameter from loadNonNativeNodes M +2 -3 libs/ui/kis_mimedata.cpp M +1 -2 libs/ui/kis_mimedata.h https://invent.kde.org/graphics/krita/commit/abaec2f7bba30800e22811057fb30b0ec0be78ae |
Created attachment 150465 [details] ^ gdb 'thread apply all bt' log of the crash Hi, today I was drag'n'dropping a vector layer with text information (the header for a comission, that has client brand name, number of the sheet, date... a classic) when Krita crashed. I saw it was reproducible with two new documents: How to reproduce: =============== 1. With the subwindow mode activated (Settings > General > Windows). 2. Create two new documents 3. Window > Tile (so the two new documents are now side by side) 4. Create a random text on a document. 5. Drag and drop the vector layer containing the txt to the other document Result: ===== Krita crashes (gdb 'thread apply all bt' log in attachement). Expected: ======== The vector layer (with the text) to get copied into the second document (on top of the position in the layer stack) and second document to activate focus. Hardware and setup: ================== Krita Version: 5.1.0-beta2 appimage stable nightly (of today 7 july on Jenkins build) , Qt version compiled: 5.12.12, loaded: 5.12.12 Fedora 36 KDE. Mesa GPU: AMD ATI Radeon RX 5500/5500M / Pro 5500M CPU: AMD Ryzen 7 3700X (16) @ 3.600GHz VM: Kwin/X11 DE: KDE Plasma 5.24.5