Clear suggestions on node/port mouse down

Closes #5244
This commit is contained in:
Nick O'Leary
2025-10-23 13:52:44 +01:00
parent 32831cb3b4
commit 6bb32775ba

View File

@@ -105,6 +105,7 @@ RED.view = (function() {
let suggestedLinks = [];
let suggestedJunctions = [];
let forceFullRedraw = false
// Note: these are the permitted status colour aliases. The actual RGB values
// are set in the CSS - flow.scss/colors.scss
const status_colours = {
@@ -3215,6 +3216,7 @@ RED.view = (function() {
function portMouseDown(d,portType,portIndex, evt) {
if (RED.view.DEBUG) { console.warn("portMouseDown", mouse_mode,d,portType,portIndex); }
clearSuggestedFlow();
RED.contextMenu.hide();
evt = evt || d3.event;
if (evt === 1) {
@@ -3799,6 +3801,7 @@ RED.view = (function() {
}
function nodeMouseDown(d) {
if (RED.view.DEBUG) { console.warn("nodeMouseDown", mouse_mode,d); }
clearSuggestedFlow()
focusView();
RED.contextMenu.hide();
if (d3.event.button === 1) {
@@ -4429,8 +4432,8 @@ RED.view = (function() {
outer.attr("width", space_width*scaleFactor).attr("height", space_height*scaleFactor);
// Don't bother redrawing nodes if we're drawing links
if (showAllLinkPorts !== -1 || mouse_mode != RED.state.JOINING) {
if (forceFullRedraw || showAllLinkPorts !== -1 || mouse_mode != RED.state.JOINING) {
forceFullRedraw = false
var dirtyNodes = {};
if (activeSubflow) {
@@ -6720,7 +6723,6 @@ RED.view = (function() {
refreshSuggestedFlow();
} else { // Anything else; clear the suggestion
clearSuggestedFlow();
RED.view.redraw(true);
// manually push the event to the keyboard handler
RED.keyboard.handle(evt)
}
@@ -6729,7 +6731,6 @@ RED.view = (function() {
if (suggestion.clickToApply) {
$(window).on('mousedown.suggestedFlow', function (evnt) {
clearSuggestedFlow();
RED.view.redraw(true);
})
}
}
@@ -6750,12 +6751,16 @@ RED.view = (function() {
}
function clearSuggestedFlow () {
$(window).off('mousedown.suggestedFlow');
$(window).off('keydown.suggestedFlow')
RED.keyboard.enable()
currentSuggestion = null
suggestedNodes = []
suggestedLinks = []
if (currentSuggestion) {
$(window).off('mousedown.suggestedFlow');
$(window).off('keydown.suggestedFlow')
RED.keyboard.enable()
currentSuggestion = null
suggestedNodes = []
suggestedLinks = []
forceFullRedraw = true
RED.view.redraw(true);
}
}
function applySuggestedFlow () {