From e27de4f8687e76e4d5427f9e52cc8b3ecfed326e Mon Sep 17 00:00:00 2001 From: Lewis B Date: Thu, 5 Jan 2017 18:59:05 +1000 Subject: [PATCH] Fixed tool-tip surviving after item deleted (#2545) --- lib/shared/Popup.js | 7 +++++++ lib/timeline/component/ItemSet.js | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/shared/Popup.js b/lib/shared/Popup.js index 43d4537b..eafd94b7 100644 --- a/lib/shared/Popup.js +++ b/lib/shared/Popup.js @@ -93,6 +93,13 @@ class Popup { this.hidden = true; this.frame.style.visibility = "hidden"; } + + /** + * Remove the popup window + */ + destroy() { + this.frame.parentNode.removeChild(this.frame); // Remove element from DOM + } } export default Popup; diff --git a/lib/timeline/component/ItemSet.js b/lib/timeline/component/ItemSet.js index 022e4f18..07c0ce74 100644 --- a/lib/timeline/component/ItemSet.js +++ b/lib/timeline/component/ItemSet.js @@ -869,7 +869,8 @@ ItemSet.prototype.getGroups = function() { */ ItemSet.prototype.removeItem = function(id) { var item = this.itemsData.get(id), - dataset = this.itemsData.getDataSet(); + dataset = this.itemsData.getDataSet(), + itemObj = this.items[id]; if (item) { // confirm deletion @@ -878,6 +879,12 @@ ItemSet.prototype.removeItem = function(id) { // remove by id here, it is possible that an item has no id defined // itself, so better not delete by the item itself dataset.remove(id); + + // Remove it's popup + if (itemObj.popup) { + itemObj.popup.destroy(); + itemObj.popup = null; + } } }); }