diff --git a/configs/client-default.js b/configs/client-default.js index 47369527..5f42b148 100644 --- a/configs/client-default.js +++ b/configs/client-default.js @@ -403,7 +403,8 @@ module.exports = function(options) { "plugins/c9.ide.theme.flat/flat-light", { packagePath: "plugins/c9.ide.layout.classic/preload", - themePrefix: options.themePrefix + themePrefix: options.themePrefix, + defaultTheme: "dark" }, { packagePath: "plugins/c9.ide.tree/tree", diff --git a/plugins/c9.ide.layout.classic/preload.js b/plugins/c9.ide.layout.classic/preload.js index 4d02ae92..1e0d97a6 100644 --- a/plugins/c9.ide.layout.classic/preload.js +++ b/plugins/c9.ide.layout.classic/preload.js @@ -30,7 +30,7 @@ define(function(require, exports, module) { function preload(callback) { settings.setDefaults("user/general", [ - ["skin", "dark"] // "flat-light" + ["skin", options.defaultTheme || "dark"] // "flat-light" ]); if (!packed || options.loadTheme) return callback(); try { diff --git a/plugins/c9.ide.ui/menus.js b/plugins/c9.ide.ui/menus.js index 167e0688..94461231 100644 --- a/plugins/c9.ide.ui/menus.js +++ b/plugins/c9.ide.ui/menus.js @@ -211,28 +211,27 @@ define(function(require, exports, module) { var editor = emit("getEditor"); var nodes = this.childNodes; - for (var start = 0, a, fn, cmd, n, i = nodes.length - 1; i >= 0; i--) { - cmd = (n = nodes[i]).command; - - if (start == i && !n.visible) - start = i + 1; + for (var n, prev, i = nodes.length - 1; i >= 0; i--) { + var cmd = (n = nodes[i]).command; if (!n.visible) continue; - + // prevent dividers two consecutive dividers and dividers // at bottom and top if (n.localName == "divider") { - if (i === start || i == nodes.length -1 - || nodes[i - 1].localName == "divider") + if (!prev || prev.localName == "divider") n.hide(); else n.show(); + + prev = n; continue; } + prev = n; var c = cmd && commands.commands[cmd]; - fn = c && c.isAvailable; - a = (!n.isAvailable || n.isAvailable(editor)) + var fn = c && c.isAvailable; + var a = (!n.isAvailable || n.isAvailable(editor)) && (!fn || fn(editor)); if (!cmd) @@ -242,6 +241,9 @@ define(function(require, exports, module) { n[a ? "enable" : "disable"](); } + if (prev && prev.localName == "divider") { + prev.hide(); + } } toggleIframes(e);