From 143ceff0d83c53000dd29c2047d204c08dba9de7 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <thomas@roundcube.net> Date: Thu, 06 Mar 2014 07:17:31 -0500 Subject: [PATCH] Implement ArrayAccess interface for conveniently accessing rcube_result_set as array --- program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js index 956fbea..48b0fff 100644 --- a/program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js +++ b/program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js @@ -27,7 +27,7 @@ * @param {string} url Absolute URL to where the plugin is located. */ init : function(ed) { - var t = this, showMenu, contextmenuNeverUseNative, realCtrlKey; + var t = this, showMenu, contextmenuNeverUseNative, realCtrlKey, hideMenu; t.editor = ed; @@ -42,6 +42,10 @@ */ t.onContextMenu = new tinymce.util.Dispatcher(this); + hideMenu = function(e) { + hide(ed, e); + }; + showMenu = ed.onContextMenu.add(function(ed, e) { // Block TinyMCE menu on ctrlKey and work around Safari issue if ((realCtrlKey !== 0 ? realCtrlKey : e.ctrlKey) && !contextmenuNeverUseNative) @@ -54,13 +58,11 @@ ed.selection.select(e.target); t._getMenu(ed).showMenu(e.clientX || e.pageX, e.clientY || e.pageY); - Event.add(ed.getDoc(), 'click', function(e) { - hide(ed, e); - }); + Event.add(ed.getDoc(), 'click', hideMenu); ed.nodeChanged(); }); - + ed.onRemove.add(function() { if (t._menu) t._menu.removeAll(); @@ -78,8 +80,9 @@ if (t._menu) { t._menu.removeAll(); - t._menu.destroy(); - Event.remove(ed.getDoc(), 'click', hide); + t._menu.destroy(); + Event.remove(ed.getDoc(), 'click', hideMenu); + t._menu = null; } }; -- Gitblit v1.9.1