constructor(node, view, getPos) {
		const { state } = view;
		const selection = state.selection;
		this._selected = false;
		state.doc.nodesBetween(selection.from, selection.to, (selected_node, position) => {
			if ( selected_node === node ) {
				this._selected = true;
			}
		});
		this.renderElement(node, view, getPos);
	    
  	}No. Node identity (==) isn’t meaningful in ProseMirror (the same node object might occur multiple times in a document). Checking whether getPos() is >= selection.from and getPos() + node.nodeSize <= selection.to should work better.
              
              
              1 Like
            
            
          Awesome, thankyou.
Seems like I might be attacking this problem the wrong way… now I have an issue that deselectNode isn’t called when I click elsewhere.
Some background… when the below code runs after the image is resized it causes the nodeView to recreate itself and so I use the above code to show the resize handles, because setSelection doesn’t seem to call selectNode… ?
const imgselection = TextSelection.create(
	      	tr.doc,
	      	selection.from,
	      	selection.from + 1
	    );
    	tr = tr.setSelection(imgselection);
    	if (tr.docChanged) {
			dispatch(tr);
		}If I use NodeSelection instead of TextSelection everything seems to work as expected, I guess this is where I was going wrong.