From 161fdcb36462dead977fd59d7b7303150fcb255e Mon Sep 17 00:00:00 2001 From: Sam Date: Wed, 3 Apr 2013 08:10:29 +1100 Subject: [PATCH] fix weird selection bugs during quote reply. --- .../discourse/controllers/quote_button_controller.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/controllers/quote_button_controller.js b/app/assets/javascripts/discourse/controllers/quote_button_controller.js index 5a804bf818d..7c5939e54d1 100644 --- a/app/assets/javascripts/discourse/controllers/quote_button_controller.js +++ b/app/assets/javascripts/discourse/controllers/quote_button_controller.js @@ -28,7 +28,8 @@ Discourse.QuoteButtonController = Discourse.Controller.extend({ if (!this.get('controllers.topic.content.can_create_post')) return; // retrieve the selected range - var range = window.getSelection().getRangeAt(0).cloneRange(); + var range = window.getSelection().getRangeAt(0); + var cloned = range.cloneRange(); // do not be present the "quote reply" button if you select text spanning two posts // this basically look for the first "DIV" container... @@ -54,6 +55,10 @@ Discourse.QuoteButtonController = Discourse.Controller.extend({ // insert it at the beginning of our range range.insertNode(markerElement); + var sel = window.getSelection(); + sel.removeAllRanges(); + sel.addRange(cloned); + // find marker position (cf. http://www.quirksmode.org/js/findpos.html) var obj = markerElement, left = 0, top = 0; do {