From 2aa52a43c83be3f74309f9fe99bf554a8a6b3d6c Mon Sep 17 00:00:00 2001 From: nathangray Date: Mon, 15 Mar 2021 15:58:01 -0600 Subject: [PATCH] Need to wait to restore the select handler to avoid nm selecting the next row. --- mail/js/app.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mail/js/app.js b/mail/js/app.js index bd1580adef..58b2d1f414 100644 --- a/mail/js/app.js +++ b/mail/js/app.js @@ -3593,14 +3593,10 @@ app.classes.mail = AppJS.extend( let on_select = nm.options.onselect; _senders[0].parent.setAllSelected(false); this.mail_preview([],nm); - nm.options.onselect = null; // thev 4th param indicates if it is a normal move messages action. if not the action is a move2.... (archiveFolder) action egw.json('mail.mail_ui.ajax_copyMessages',[target, messages, 'move', (_action.id.substr(0,4)=='move'&&_action.id.substr(4,1)=='2'?'2':'_') ], function(){ self.unlock_tree(); - // Restore onselect handler - nm.options.onselect = on_select; - // Server response may contain refresh, but it's always delete // Refresh list if current view is the target (happens when pasting) var tree = self.et2.getWidgetById('nm[foldertree]'); @@ -3609,6 +3605,14 @@ app.classes.mail = AppJS.extend( // Can't trust the sorting, needs to be full refresh nm.refresh(); } + + // Need to wait on the restore, since the reply will refresh & reset the selection + nm.options.onselect = function() { + window.setTimeout(function() { + // Restore onselect handler + nm.options.onselect = on_select; + },100) + }; }) .sendRequest(); this.mail_setRowClass(_senders,'deleted');