From ceee7eb110df884155af024f3b2b7eebb8dd3378 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli Date: Thu, 18 Dec 2014 13:13:07 +0100 Subject: Prevent folder selection changes if app is busy (#1490158) --- program/js/app.js | 1 + program/js/treelist.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/program/js/app.js b/program/js/app.js index e92078961..3d714b92b 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -574,6 +574,7 @@ function rcube_webmail() this.treelist .addEventListener('collapse', function(node) { ref.folder_collapsed(node) }) .addEventListener('expand', function(node) { ref.folder_collapsed(node) }) + .addEventListener('beforeselect', function(node) { return !ref.busy; }) .addEventListener('select', function(node) { ref.triggerEvent('selectfolder', { folder:node.id, prefix:'rcmli' }) }); } diff --git a/program/js/treelist.js b/program/js/treelist.js index 08e0e686d..6f7bfbef7 100644 --- a/program/js/treelist.js +++ b/program/js/treelist.js @@ -248,6 +248,11 @@ function rcube_treelist_widget(node, p) */ function select(id) { + // allow subscribes to prevent selection change + if (me.triggerEvent('beforeselect', indexbyid[id]) === false) { + return; + } + if (selection) { id2dom(selection, true).removeClass('selected').removeAttr('aria-selected'); if (search_active) -- cgit v1.2.3