From 2e3842084cab39e6aaf53fa7a17f5fa44c74b78b Mon Sep 17 00:00:00 2001
From: Robin Ward <robin.ward@gmail.com>
Date: Wed, 4 Jun 2014 14:46:03 -0400
Subject: [PATCH] If the composer is already open with the same draft, we don't
 have to close and reopen it.

---
 .../discourse/controllers/composer.js.es6     | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/app/assets/javascripts/discourse/controllers/composer.js.es6 b/app/assets/javascripts/discourse/controllers/composer.js.es6
index dea15afa3..18e9f3969 100644
--- a/app/assets/javascripts/discourse/controllers/composer.js.es6
+++ b/app/assets/javascripts/discourse/controllers/composer.js.es6
@@ -268,19 +268,26 @@ export default Discourse.Controller.extend({
 
     return new Ember.RSVP.Promise(function(resolve, reject) {
       if (composerModel && composerModel.get('replyDirty')) {
+
+        // If we're already open, we don't have to do anything
+        if (composerModel.get('composeState') === Discourse.Composer.OPEN &&
+            composerModel.get('draftKey') === opts.draftKey) {
+          return resolve();
+        }
+
+        // If it's the same draft, just open it up again.
         if (composerModel.get('composeState') === Discourse.Composer.DRAFT &&
             composerModel.get('draftKey') === opts.draftKey &&
             composerModel.action === opts.action) {
 
-            // If it's the same draft, just open it up again.
             composerModel.set('composeState', Discourse.Composer.OPEN);
             return resolve();
-        } else {
-          // If it's a different draft, cancel it and try opening again.
-          return self.cancelComposer().then(function() {
-            return self.open(opts);
-          }).then(resolve, reject);
         }
+
+        // If it's a different draft, cancel it and try opening again.
+        return self.cancelComposer().then(function() {
+          return self.open(opts);
+        }).then(resolve, reject);
       }
 
       // we need a draft sequence for the composer to work