From 0a0ef228fe1eefdf0a492b3dccd8e59d8903ed9d Mon Sep 17 00:00:00 2001 From: Chayan Deb Date: Thu, 23 Jan 2025 20:26:20 +0530 Subject: [PATCH] [Bugfix]: Fixed a bug where drawing a wire in an empty canvas caused the snap-cursor to detect it's own endpoint as a snap-point and incorrectly terminate wire-drawing mode --- src/callback.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/callback.c b/src/callback.c index 3d7000e2..3d00c1ba 100644 --- a/src/callback.c +++ b/src/callback.c @@ -4230,9 +4230,10 @@ int rstate; /* (reduced state, without ShiftMask) */ if(tclgetboolvar("persistent_command") && xctx->last_command) { if(xctx->last_command == STARTLINE) start_line(xctx->mousex_snap, xctx->mousey_snap); if(xctx->last_command == STARTWIRE){ - if(tclgetboolvar("snap_cursor") && (xctx->prev_snapx == xctx->mousex_snap && xctx->prev_snapy == xctx->mousey_snap)){ + if(tclgetboolvar("snap_cursor") && (xctx->prev_snapx == xctx->mousex_snap && xctx->prev_snapy == xctx->mousey_snap) + && (xctx->ui_state & STARTWIRE)){ new_wire(PLACE|END, xctx->mousex_snap, xctx->mousey_snap); - xctx->last_command &= ~STARTWIRE; + xctx->ui_state &= ~STARTWIRE; } else start_wire(xctx->mousex_snap, xctx->mousey_snap);