diff --git a/app/assets/javascripts/discourse/controllers/quote_button_controller.js b/app/assets/javascripts/discourse/controllers/quote_button_controller.js index 8723171c2..c8a868907 100644 --- a/app/assets/javascripts/discourse/controllers/quote_button_controller.js +++ b/app/assets/javascripts/discourse/controllers/quote_button_controller.js @@ -45,7 +45,10 @@ Discourse.QuoteButtonController = Discourse.Controller.extend({ // don't display the "quote reply" button if you select text spanning two posts // note: the ".contents" is here to prevent selection of the topic summary - if ($ancestor.closest('.topic-body > .contents').length === 0) return; + if ($ancestor.closest('.topic-body > .contents').length === 0) { + this.set('buffer', ''); + return; + } var selectedText = Discourse.Utilities.selectedText(); if (this.get('buffer') === selectedText) return; diff --git a/app/assets/javascripts/discourse/views/quote_button_view.js b/app/assets/javascripts/discourse/views/quote_button_view.js index 18f424dbb..677f762e7 100644 --- a/app/assets/javascripts/discourse/views/quote_button_view.js +++ b/app/assets/javascripts/discourse/views/quote_button_view.js @@ -49,7 +49,8 @@ Discourse.QuoteButtonView = Discourse.View.extend({ view.set('isMouseDown', true); if ($(e.target).hasClass('quote-button') || $(e.target).hasClass('create')) return; // deselects only when the user left-click - if (e.which === 1) controller.deselectText(); + // this also allow anyone to `extend` their selection using a shift+click + if (e.which === 1 && !e.shiftKey) controller.deselectText(); }) .on('mouseup.quote-button', function(e) { view.selectText(e.target, controller);