From a2f0606d3232d97fd7bf73795a5605517f00d79a Mon Sep 17 00:00:00 2001 From: Hanif Koh Date: Fri, 11 Sep 2026 20:40:30 +0800 Subject: [PATCH] Wake the Idle Loop When a Mouse Button Is Released Releasing a button after a camera drag marks the canvas dirty and leaves the frame to the next idle event, and on some platforms none follows a release until the next input arrives. That frame is the one that puts the preview's full detail back after a drag, so the preview stayed at its reduced set until the mouse moved. The release now wakes the idle loop, as the wheel handler already does for the same reason. --- src/slic3r/GUI/GLCanvas3D.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index a76368a809..80ebcb272f 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -5671,6 +5671,9 @@ void GLCanvas3D::mouse_up_cleanup() m_mouse.ignore_left_up = false; m_mouse.ignore_right_up = false; m_dirty = true; + // ORCA: the frame that follows a release is the one that puts the preview's full detail back, + // and on some platforms no idle event follows a button release until the next input + wxWakeUpIdle(); if (m_canvas->HasCapture()) m_canvas->ReleaseMouse();