diff --git a/frontend/src/metabase/visualizations/visualizations/Text.jsx b/frontend/src/metabase/visualizations/visualizations/Text.jsx
index e0844278c53d3b59f4f34ab8ed43d25263aad508..fa883587db217cacd71a13d4ff9331645db36fc9 100644
--- a/frontend/src/metabase/visualizations/visualizations/Text.jsx
+++ b/frontend/src/metabase/visualizations/visualizations/Text.jsx
@@ -98,6 +98,8 @@ export default class Text extends Component {
     this.props.onUpdateVisualizationSettings({ text: text });
   }
 
+  preventDragging = e => e.stopPropagation();
+
   render() {
     const { className, gridSize, settings, isEditing } = this.props;
     const isSingleRow = gridSize && gridSize.height === 1;
@@ -125,6 +127,9 @@ export default class Text extends Component {
               placeholder={t`Write here, and use Markdown if you'd like`}
               value={settings.text}
               onChange={e => this.handleTextChange(e.target.value)}
+              // Prevents text cards from dragging when you actually want to select text
+              // See: https://github.com/metabase/metabase/issues/17039
+              onMouseDown={this.preventDragging}
             />
           )}
         </div>