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.
This commit is contained in:
Hanif Koh
2026-09-11 20:40:30 +08:00
parent 36cd425bb3
commit a2f0606d32

View File

@@ -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();