diff -r fd8fb93e1b6a -r a361355b55c7 src/pyams_skin/resources/js/ext/tinymce/dev/plugins/contextmenu/plugin.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/contextmenu/plugin.js Wed Jun 17 10:00:10 2015 +0200 @@ -0,0 +1,87 @@ +/** + * plugin.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true */ + +tinymce.PluginManager.add('contextmenu', function(editor) { + var menu, contextmenuNeverUseNative = editor.settings.contextmenu_never_use_native; + + editor.on('contextmenu', function(e) { + var contextmenu, doc = editor.getDoc(); + + // Block TinyMCE menu on ctrlKey + if (e.ctrlKey && !contextmenuNeverUseNative) { + return; + } + + e.preventDefault(); + + /** + * WebKit/Blink on Mac has the odd behavior of selecting the target word or line this causes + * issues when for example inserting images see: #7022 + */ + if (tinymce.Env.mac && tinymce.Env.webkit) { + if (e.button == 2 && doc.caretRangeFromPoint) { + editor.selection.setRng(doc.caretRangeFromPoint(e.x, e.y)); + } + } + + contextmenu = editor.settings.contextmenu || 'link image inserttable | cell row column deletetable'; + + // Render menu + if (!menu) { + var items = []; + + tinymce.each(contextmenu.split(/[ ,]/), function(name) { + var item = editor.menuItems[name]; + + if (name == '|') { + item = {text: name}; + } + + if (item) { + item.shortcut = ''; // Hide shortcuts + items.push(item); + } + }); + + for (var i = 0; i < items.length; i++) { + if (items[i].text == '|') { + if (i === 0 || i == items.length - 1) { + items.splice(i, 1); + } + } + } + + menu = new tinymce.ui.Menu({ + items: items, + context: 'contextmenu' + }).addClass('contextmenu').renderTo(); + + editor.on('remove', function() { + menu.remove(); + menu = null; + }); + } else { + menu.show(); + } + + // Position menu + var pos = {x: e.pageX, y: e.pageY}; + + if (!editor.inline) { + pos = tinymce.DOM.getPos(editor.getContentAreaContainer()); + pos.x += e.clientX; + pos.y += e.clientY; + } + + menu.moveTo(pos.x, pos.y); + }); +}); \ No newline at end of file