diff --git a/package.json b/package.json index 882fb55c..a4730c92 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "c9.ide.find": "#35379124ca", "c9.ide.find.infiles": "#c132ad243c", "c9.ide.find.replace": "#44772dd796", - "c9.ide.run.debug": "#e38e16e120", + "c9.ide.run.debug": "#a46abda8e9", "c9.automate": "#47e2c429c9", "c9.ide.ace.emmet": "#6dc4585e02", "c9.ide.ace.gotoline": "#a8ff07c8f4", @@ -88,7 +88,7 @@ "c9.ide.format": "#b0bb91a623", "c9.ide.help.support": "#e95f98f87c", "c9.ide.imgeditor": "#66a9733dc1", - "c9.ide.immediate": "#4b0057aa7a", + "c9.ide.immediate": "#520ee525c0", "c9.ide.installer": "#0fde9f0067", "c9.ide.mount": "#da6ad73c5b", "c9.ide.navigate": "#c191d9b92f", diff --git a/plugins/c9.core/ext.js b/plugins/c9.core/ext.js index f5b90e52..29369049 100644 --- a/plugins/c9.core/ext.js +++ b/plugins/c9.core/ext.js @@ -530,8 +530,8 @@ define(function(require, exports, module) { }); } - function cleanUp(keepElements) { - if (!keepElements) { + function cleanUp(what) { + if (!what || ~what.indexOf("elements")) { // Loop through elements elements.forEach(function(element) { element.destroy(true, true); @@ -542,33 +542,36 @@ define(function(require, exports, module) { } // Loop through events - events.forEach(function(eventRecord) { - var event = eventRegistry[eventRecord[0]]; - if (!event) return; // this happens with mock plugins during testing - var type = eventRecord[1]; - var id = eventRecord[2]; - var _events = event._events; - var eventList = _events && _events[type]; - if (typeof eventList == "function") { - if (eventList.listenerId == id) - event.off(type, eventList); - } else if (Array.isArray(eventList)) { - eventList.some(function(listener) { - if (listener.listenerId != id) return; - event.off(type, listener); - return true; - }); - } - }); - events = []; + if (!what || ~what.indexOf("events")) { + events.forEach(function(eventRecord) { + var event = eventRegistry[eventRecord[0]]; + if (!event) return; // this happens with mock plugins during testing + var type = eventRecord[1]; + var id = eventRecord[2]; + var _events = event._events; + var eventList = _events && _events[type]; + if (typeof eventList == "function") { + if (eventList.listenerId == id) + event.off(type, eventList); + } else if (Array.isArray(eventList)) { + eventList.some(function(listener) { + if (listener.listenerId != id) return; + event.off(type, listener); + return true; + }); + } + }); + events = []; + onNewEvents = {}; + } // Loop through other - other.forEach(function(o) { - o(); - }); - other = []; - - onNewEvents = {}; + if (!what || ~what.indexOf("other")) { + other.forEach(function(o) { + o(); + }); + other = []; + } } function setAPIKey(apikey){ diff --git a/plugins/c9.ide.ui/lib/menu/menu.js b/plugins/c9.ide.ui/lib/menu/menu.js index 8c786579..f2525684 100644 --- a/plugins/c9.ide.ui/lib/menu/menu.js +++ b/plugins/c9.ide.ui/lib/menu/menu.js @@ -1530,8 +1530,8 @@ apf.item = function(struct, tagName){ //@todo Anim effect here? this.dispatchEvent("click", { - xmlContext : this.parentNode.xmlReference, - opener : this.parentNode.opener + xmlContext : (this.parentNode || 0).xmlReference, + opener : (this.parentNode || 0).opener });