HOME


Mini Shell 1.0
DIR: /home/islapiiu/sites/faithlinkint/control-panel/plugins/tinymce/plugins/contextmenu/
Upload File :
Current File : /home/islapiiu/sites/faithlinkint/control-panel/plugins/tinymce/plugins/contextmenu/plugin.js
/**
 
 * plugin.js
 
 *
 
 * Released under LGPL License.
 
 * Copyright (c) 1999-2015 Ephox Corp. All rights reserved
 
 *
 
 * 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',

                classes: '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);

    });

});