diff --git a/IPython/html/static/notebook/js/celltoolbar.js b/IPython/html/static/notebook/js/celltoolbar.js
index fc69d38..4305664 100644
--- a/IPython/html/static/notebook/js/celltoolbar.js
+++ b/IPython/html/static/notebook/js/celltoolbar.js
@@ -184,6 +184,10 @@ var IPython = (function (IPython) {
CellToolbar.register_preset = function(name, preset_list) {
CellToolbar._presets[name] = preset_list;
$([IPython.events]).trigger('preset_added.CellToolbar', {name: name});
+ // When "register_callback" is called by a custom extension, it may be executed after notebook is loaded.
+ // In that case, activate the preset if needed.
+ if (IPython.notebook && IPython.notebook.metadata && IPython.notebook.metadata.celltoolbar === name)
+ this.activate_preset(name);
};
@@ -223,6 +227,8 @@ var IPython = (function (IPython) {
CellToolbar._ui_controls_list = preset;
CellToolbar.rebuild_all();
}
+
+ $([IPython.events]).trigger('preset_activated.CellToolbar', {name: preset_name});
};
diff --git a/IPython/html/static/notebook/js/maintoolbar.js b/IPython/html/static/notebook/js/maintoolbar.js
index 6db1956..8a8ee75 100644
--- a/IPython/html/static/notebook/js/maintoolbar.js
+++ b/IPython/html/static/notebook/js/maintoolbar.js
@@ -20,7 +20,7 @@ var IPython = (function (IPython) {
this.bind_events();
};
- MainToolBar.prototype = new IPython.ToolBar();
+ MainToolBar.prototype = new IPython.ToolBar();
MainToolBar.prototype.construct = function () {
this.add_buttons_group([
@@ -92,7 +92,7 @@ var IPython = (function (IPython) {
}
}
],'move_up_down');
-
+
this.add_buttons_group([
{
@@ -170,12 +170,17 @@ var IPython = (function (IPython) {
var name = data.name;
select.append($('').attr('value', name).text(name));
});
+ // Update select value when a preset is activated.
+ $([IPython.events]).on('preset_activated.CellToolbar', function (event, data) {
+ if (select.val() !== data.name)
+ select.val(data.name);
+ });
};
MainToolBar.prototype.bind_events = function () {
var that = this;
-
+
this.element.find('#cell_type').change(function () {
var cell_type = $(this).val();
if (cell_type === 'code') {