From ab845c07186e347cfa9093a3080575fbe8864053 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Fri, 24 May 2013 08:20:43 -0400
Subject: [PATCH] Fix bug where a message was opened in both preview pane and new window on double-click (#1489122)

---
 CHANGELOG         |    1 +
 program/js/app.js |   10 ++++++----
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index bc359db..e8e7a88 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix bug where a message was opened in both preview pane and new window on double-click (#1489122)
 - Fix fatal error when xdebug.max_nesting_level was exceeded in rcube_washtml (#1489110)
 - Fix PHP warning in html_table::set_row_attribs() in PHP 5.4 (#1489094)
 - Fix invalid option selected in default_font selector when font is unset (#1489112)
diff --git a/program/js/app.js b/program/js/app.js
index 49d0756..40acbe6 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1507,7 +1507,7 @@
 
     // start timer for message preview (wait for double click)
     if (selected && this.env.contentframe && !list.multi_selecting && !this.dummy_select)
-      this.preview_timer = setTimeout(function(){ ref.msglist_get_preview(); }, 200);
+      this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time);
     else if (this.env.contentframe)
       this.show_contentframe(false);
   };
@@ -1523,12 +1523,13 @@
 
     var win = this.get_frame_window(this.env.contentframe);
 
-    if (win && win.location.href.indexOf(this.env.blankpage)>=0) {
+    if (win && win.location.href.indexOf(this.env.blankpage) >= 0) {
       if (this.preview_timer)
         clearTimeout(this.preview_timer);
       if (this.preview_read_timer)
         clearTimeout(this.preview_read_timer);
-      this.preview_timer = setTimeout(function(){ ref.msglist_get_preview(); }, 200);
+
+      this.preview_timer = setTimeout(function() { ref.msglist_get_preview(); }, this.dblclick_time);
     }
   };
 
@@ -1536,11 +1537,11 @@
   {
     if (this.preview_timer)
       clearTimeout(this.preview_timer);
-
     if (this.preview_read_timer)
       clearTimeout(this.preview_read_timer);
 
     var uid = list.get_single_selection();
+
     if (uid && this.env.mailbox == this.env.drafts_mailbox)
       this.open_compose_step({ _draft_uid: uid, _mbox: this.env.mailbox });
     else if (uid)
@@ -4063,6 +4064,7 @@
     var n, id, sid, ref = this, writable = false,
       source = this.env.source ? this.env.address_sources[this.env.source] : null;
 
+    // we don't have dblclick handler here, so use 200 instead of this.dblclick_time
     if (id = list.get_single_selection())
       this.preview_timer = setTimeout(function(){ ref.load_contact(id, 'show'); }, 200);
     else if (this.env.contentframe)

--
Gitblit v1.9.1