diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2014-06-05 16:44:43 +0200 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2014-06-05 16:44:43 +0200 |
commit | 5f7ef8f95d428f7b22139d5dc00c875f2cbf838b (patch) | |
tree | 3ad73c28b413b6bde1d7af4b84fb68d5dbb69427 /program/js/app.js | |
parent | bf33799377eab662f8f25365cf15f57cf6697947 (diff) | |
parent | 778d2363f1a0cb5b6bebae1864de76d1c31669d8 (diff) |
Merge branch 'master' of github.com:roundcube/roundcubemail
Diffstat (limited to 'program/js/app.js')
-rw-r--r-- | program/js/app.js | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/program/js/app.js b/program/js/app.js index ddc7b2f4b..9c2acfc55 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -2431,6 +2431,9 @@ function rcube_webmail() url._framed = 1; } + if (this.env.uid) + url._uid = this.env.uid; + // load message list to target frame/window if (mbox) { this.set_busy(true, 'loading'); @@ -7258,11 +7261,24 @@ function rcube_webmail() this.enable_command('expand-all', 'expand-unread', 'collapse-all', this.env.threading && this.env.messagecount && !is_multifolder); if ((response.action == 'list' || response.action == 'search') && this.message_list) { + var list = this.message_list, uid = this.env.list_uid; + + // highlight message row when we're back from message page + if (uid) { + if (!list.rows[uid]) + uid += '-' + this.env.mailbox; + if (list.rows[uid]) { + list.select(uid); + } + delete this.env.list_uid; + } + this.enable_command('set-listmode', this.env.threads && !is_multifolder); - if (this.message_list.rowcount > 0) - this.message_list.focus(); - this.msglist_select(this.message_list); - this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:this.message_list.rowcount }); + if (list.rowcount > 0) + list.focus(); + this.msglist_select(list); + this.triggerEvent('listupdate', { folder:this.env.mailbox, rowcount:list.rowcount }); + } } else if (this.task == 'addressbook') { |