From 27394fe12dc80423fbe3b53191470df2c57dfb73 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Mon, 1 Feb 2016 22:23:52 +0000 Subject: [PATCH] Toggle sidebar drag 'n' drop with edit mode Only add and remove the drag 'n' drop functionality for sidebar plugin items when the first editor is opened and the last editor is closed respectively, instead of doing so every time an editor is opened or closed. --- src/gui/html/js/events.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/gui/html/js/events.js b/src/gui/html/js/events.js index 51d9f319..95ea8c54 100644 --- a/src/gui/html/js/events.js +++ b/src/gui/html/js/events.js @@ -413,13 +413,6 @@ function onShowSettingsDialog() { } function onEditorOpen(evt) { - /* Set up drag 'n' drop event handlers. */ - const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item'); - for (let i = 0; i < elements.length; ++i) { - elements[i].draggable = true; - elements[i].addEventListener('dragstart', elements[i].onDragStart); - } - /* Now show editor. */ evt.target.classList.toggle('flip'); @@ -432,6 +425,13 @@ function onEditorOpen(evt) { ++numEditors; if (numEditors === 1) { + /* Set up drag 'n' drop event handlers. */ + const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item'); + for (let i = 0; i < elements.length; ++i) { + elements[i].draggable = true; + elements[i].addEventListener('dragstart', elements[i].onDragStart); + } + /* Set the edit mode toggle attribute. */ document.getElementById('cardsNav').setAttribute('data-editModeToggle', ''); /* Disable the toolbar elements. */ @@ -483,19 +483,19 @@ function onEditorClose(evt) { evt.target.classList.toggle('flip'); evt.target.data.isEditorOpen = false; - /* Remove drag 'n' drop event handlers. */ - const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item'); - for (let i = 0; i < elements.length; ++i) { - elements[i].removeAttribute('draggable'); - elements[i].removeEventListener('dragstart', elements[i].onDragStart); - } - /* Disable priority hover in plugins list and enable header buttons if this is the only editor instance. */ let numEditors = parseInt(document.body.getAttribute('data-editors'), 10); --numEditors; if (numEditors === 0) { + /* Remove drag 'n' drop event handlers. */ + const elements = document.getElementById('cardsNav').getElementsByTagName('loot-plugin-item'); + for (let i = 0; i < elements.length; ++i) { + elements[i].removeAttribute('draggable'); + elements[i].removeEventListener('dragstart', elements[i].onDragStart); + } + document.body.removeAttribute('data-editors'); /* Set the edit mode toggle attribute. */ document.getElementById('cardsNav').setAttribute('data-editModeToggle', '');