diff --git a/IPython/frontend/html/notebook/static/js/notebook.js b/IPython/frontend/html/notebook/static/js/notebook.js index 15b5fd61c..e75f1c2dd 100644 --- a/IPython/frontend/html/notebook/static/js/notebook.js +++ b/IPython/frontend/html/notebook/static/js/notebook.js @@ -21,6 +21,7 @@ var IPython = (function (IPython) { this.next_prompt_number = 1; this.kernel = null; this.clipboard = null; + this.paste_enabled = false; this.dirty = false; this.msg_cell_map = {}; this.metadata = {}; @@ -583,19 +584,25 @@ var IPython = (function (IPython) { Notebook.prototype.enable_paste = function () { var that = this; - $('#paste_cell').removeClass('ui-state-disabled') - .on('click', function () {that.paste_cell();}); - $('#paste_cell_above').removeClass('ui-state-disabled') - .on('click', function () {that.paste_cell_above();}); - $('#paste_cell_below').removeClass('ui-state-disabled') - .on('click', function () {that.paste_cell_below();}); + if (!this.paste_enabled) { + $('#paste_cell').removeClass('ui-state-disabled') + .on('click', function () {that.paste_cell();}); + $('#paste_cell_above').removeClass('ui-state-disabled') + .on('click', function () {that.paste_cell_above();}); + $('#paste_cell_below').removeClass('ui-state-disabled') + .on('click', function () {that.paste_cell_below();}); + this.paste_enabled = true; + }; }; Notebook.prototype.disable_paste = function () { - $('#paste_cell').addClass('ui-state-disabled').off('click'); - $('#paste_cell_above').addClass('ui-state-disabled').off('click'); - $('#paste_cell_below').addClass('ui-state-disabled').off('click'); + if (this.paste_enabled) { + $('#paste_cell').addClass('ui-state-disabled').off('click'); + $('#paste_cell_above').addClass('ui-state-disabled').off('click'); + $('#paste_cell_below').addClass('ui-state-disabled').off('click'); + this.paste_enabled = false; + }; }; @@ -612,7 +619,7 @@ var IPython = (function (IPython) { Notebook.prototype.paste_cell = function () { - if (this.clipboard !== null) { + if (this.clipboard !== null && this.paste_enabled) { var cell_data = this.clipboard; if (cell_data.cell_type == 'code') { new_cell = this.insert_code_cell_above(); @@ -624,14 +631,14 @@ var IPython = (function (IPython) { new_cell = this.insert_markdown_cell_above(); new_cell.fromJSON(cell_data); }; + this.select_next(); + this.delete_cell(); }; - this.select_next(); - this.delete_cell(); }; Notebook.prototype.paste_cell_above = function () { - if (this.clipboard !== null) { + if (this.clipboard !== null && this.paste_enabled) { var cell_data = this.clipboard; if (cell_data.cell_type == 'code') { new_cell = this.insert_code_cell_above(); @@ -648,16 +655,16 @@ var IPython = (function (IPython) { Notebook.prototype.paste_cell_below = function () { - if (this.clipboard !== null) { + if (this.clipboard !== null && this.paste_enabled) { var cell_data = this.clipboard; if (cell_data.cell_type == 'code') { - new_cell = this.insert_code_cell_above(); + new_cell = this.insert_code_cell_below(); new_cell.fromJSON(cell_data); } else if (cell_data.cell_type === 'html') { - new_cell = this.insert_html_cell_above(); + new_cell = this.insert_html_cell_below(); new_cell.fromJSON(cell_data); } else if (cell_data.cell_type === 'markdown') { - new_cell = this.insert_markdown_cell_above(); + new_cell = this.insert_markdown_cell_below(); new_cell.fromJSON(cell_data); }; };