code: function bindEventDelegate(editor, eventName) {
        var eventRootElm = getEventTarget(editor, eventName), delegate;
  
        function isListening(editor) {
          return !editor.hidden && !editor.readonly;
        }
  
        if (!editor.delegates) {
          editor.delegates = {};
        }
  
        if (editor.delegates[eventName]) {
          return;
        }
  
        if (editor.settings.event_root) {
          if (!customEventRootDelegates) {
            customEventRootDelegates = {};
            editor.editorManager.on('removeEditor', function () {
              var name;
  
              if (!editor.editorManager.activeEditor) {
                if (customEventRootDelegates) {
                  for (name in customEventRootDelegates) {
                    editor.dom.unbind(getEventTarget(editor, name));
                  }
  
                  customEventRootDelegates = null;
                }
              }
            });
          }
  
          if (customEventRootDelegates[eventName]) {
            return;
          }
  
          delegate = function (e) {
            var target = e.target, editors = editor.editorManager.editors, i = editors.length;
  
            while (i--) {
              var body = editors[i].getBody();
  
              if (body === target || DOM.isChildOf(target, body)) {
                if (isListening(editors[i])) {
                  editors[i].fire(eventName, e);
                }
              }
            }
          };
  
          customEventRootDelegates[eventName] = delegate;
          DOM.bind(eventRootElm, eventName, delegate);
        } else {
          delegate = function (e) {
            if (isListening(editor)) {
              editor.fire(eventName, e);
            }
          };
  
          DOM.bind(eventRootElm, eventName, delegate);
          editor.delegates[eventName] = delegate;
        }
      }
docs: Binds a event delegate for the specified name this delegate will fire
  the event to the editor dispatcher.
  
  @private
  @param {tinymce.Editor} editor Editor instance to get event target from.
  @param {String} eventName Name of the event for example "click".