From dd4f24919fef975ebea288e02b0ac02a60415cb0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9gis=20Hanol?= <regis@hanol.fr>
Date: Tue, 2 Apr 2013 10:35:22 +0200
Subject: [PATCH] Fix some 'quote reply' button quirks

---
 .../discourse/controllers/quote_button_controller.js      | 5 ++++-
 app/assets/javascripts/discourse/views/post_view.js       | 8 ++++++++
 2 files changed, 12 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 ff617202c..5a804bf81 100644
--- a/app/assets/javascripts/discourse/controllers/quote_button_controller.js
+++ b/app/assets/javascripts/discourse/controllers/quote_button_controller.js
@@ -64,7 +64,10 @@ Discourse.QuoteButtonController = Discourse.Controller.extend({
 
     // move the quote button at the beginning of the selection
     var $quoteButton = $('.quote-button');
-    $quoteButton.css({ top: top - $quoteButton.outerHeight(), left: left });
+    $quoteButton.css({
+      top: top - $quoteButton.outerHeight() - 5,
+      left: left
+    });
 
     // remove the marker
     markerElement.parentNode.removeChild(markerElement);
diff --git a/app/assets/javascripts/discourse/views/post_view.js b/app/assets/javascripts/discourse/views/post_view.js
index 1a48930e5..264c6a409 100644
--- a/app/assets/javascripts/discourse/views/post_view.js
+++ b/app/assets/javascripts/discourse/views/post_view.js
@@ -43,6 +43,10 @@ Discourse.PostView = Discourse.View.extend({
     this.set('context', this.get('content'));
   },
 
+  mouseDown: function(e) {
+    this.set('isMouseDown', true);
+  },
+
   mouseUp: function(e) {
     if (this.get('controller.multiSelect') && (e.metaKey || e.ctrlKey)) {
       this.toggleProperty('post.selected');
@@ -56,6 +60,8 @@ Discourse.PostView = Discourse.View.extend({
       e.context = this.get('post');
       qbc.selectText(e);
     }
+
+    this.set('isMouseDown', false);
   },
 
   selectText: (function() {
@@ -260,6 +266,8 @@ Discourse.PostView = Discourse.View.extend({
     $(document).on('selectionchange', function(e) {
       // quoting as been disabled by the user
       if (!Discourse.get('currentUser.enable_quoting')) return;
+      // there is no need to handle this event when the mouse is down
+      if (postView.get('isMouseDown')) return;
       // find out whether we currently are selecting inside a post
       var closestPosts = $(window.getSelection().anchorNode).closest('.topic-post');
       if (closestPosts.length === 0) return;