From cd2d30fd826eb63e4379d70703444bb8eba35237 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 27 Aug 2025 10:32:15 +0200 Subject: [PATCH] Fix moving (paint) cursor also emitted scene-change. This prevented slices from happening if the mouse-cursor came (even near) the model. originally done as part of CURA-12634 -- attempt to cherry-pick and subsequent rework later for CURA-12732 --- plugins/PaintTool/PaintTool.py | 8 +++++--- plugins/PaintTool/PaintView.py | 7 +++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/plugins/PaintTool/PaintTool.py b/plugins/PaintTool/PaintTool.py index 07d619fde2..5fbb1a1521 100644 --- a/plugins/PaintTool/PaintTool.py +++ b/plugins/PaintTool/PaintTool.py @@ -461,12 +461,14 @@ class PaintTool(Tool): def getRequiredExtraRenderingPasses(self) -> list[str]: return ["selection_faces", "picking_selected"] - @staticmethod - def _updateScene(node: SceneNode = None): + def _updateScene(self, node: SceneNode = None): if node is None: node = Selection.getSelectedObject(0) if node is not None: - Application.getInstance().getController().getScene().sceneChanged.emit(node) + if self._mouse_held: + Application.getInstance().getController().getScene().sceneChanged.emit(node) + else: + self._view.rerenderFull() def _onSelectionChanged(self): super()._onSelectionChanged() diff --git a/plugins/PaintTool/PaintView.py b/plugins/PaintTool/PaintView.py index 4a98fe8217..07f778fbda 100644 --- a/plugins/PaintTool/PaintView.py +++ b/plugins/PaintTool/PaintView.py @@ -274,6 +274,13 @@ class PaintView(CuraView): return start_index, end_index + def rerenderFull(self): + self._renderer.beginRendering() + self.beginRendering() + self._renderer.render() + self.endRendering() + self._renderer.endRendering() + def beginRendering(self) -> None: if self._current_paint_type not in self._paint_modes: return