diff --git a/pd/nw/pd_canvas.js b/pd/nw/pd_canvas.js index 0b582fd9bbe201c9cc5ff49346f786ee7787659b..977beb922f1d7740fe6152e7b45801eb0b70a142 100644 --- a/pd/nw/pd_canvas.js +++ b/pd/nw/pd_canvas.js @@ -1080,6 +1080,11 @@ function nw_create_patch_window_menus(gui, w, name) { click: function (evt) { if (canvas_events.get_state() === "normal") { pdgui.pdsend(name, "selectall"); + } else if (process.os === "darwin") { + // big kluge for OSX to select all inside a + // contenteditable element (needed because + // the stupid MacBuiltin is buggy-- see pd_menus.js) + document.execCommand("selectAll", false, null); } } }); diff --git a/pd/nw/pd_menus.js b/pd/nw/pd_menus.js index 9342be9849df80e3be09685f87e0b719565b00d8..a839d3149ce23676da20cdac463f02679098a31e 100644 --- a/pd/nw/pd_menus.js +++ b/pd/nw/pd_menus.js @@ -152,7 +152,18 @@ function create_menu(gui, type) { // There's no "Delete" item for GNU/Linux or Windows-- // not sure yet what to do with it. m.edit.delete = window_menu.items[1].submenu.items[6]; + // The MacBuiltin "Select All" doesn't propagate down to the DOM + //on OSX, so we have to remove it m.edit.selectall= window_menu.items[1].submenu.items[7]; + window_menu.items[1].submenu.remove(m.edit.selectall); + // Now we replace it with a custom "Select All" which will + // propagate to the DOM... + edit_menu.append(m.edit.selectall = new gui.MenuItem({ + label: l("menu.selectall"), + tooltip: l("menu.selectall_tt"), + key: "a", + modifiers: cmd_or_ctrl + })); } else { edit_menu = new gui.Menu(); // Edit sub-entries