diff --git a/src/HTML5Backend.js b/src/HTML5Backend.js index f7add2c..b92bdc3 100644 --- a/src/HTML5Backend.js +++ b/src/HTML5Backend.js @@ -494,11 +494,27 @@ export default class HTML5Backend { } handleSelectStart(e) { - // Prevent selection on IE - // and instead ask it to consider dragging. - if (typeof e.target.dragDrop === 'function') { - e.preventDefault(); - e.target.dragDrop(); + const { target } = e; + + // Only IE requires us to explicitly say + // we want drag drop operation to start + if (typeof target.dragDrop !== 'function') { + return; } + + // Inputs and textareas should be selectable + if ( + target.tagName === 'INPUT' || + target.tagName === 'SELECT' || + target.tagName === 'TEXTAREA' || + target.isContentEditable + ) { + return; + } + + // For other targets, ask IE + // to enable drag and drop + e.preventDefault(); + target.dragDrop(); } }