diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js index 89019005f..4f40c4a31 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/view.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/view.js @@ -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 () {