From 249db18585959c9ab3e09b6e91f8fec7cd32e9d0 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Fri, 01 Oct 2010 03:49:54 -0400 Subject: [PATCH] - Fix "Server Error! (Not Found)" when using utils/save-pref action (#1487023) --- program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js | 26 +++++++++++++++++++++++--- 1 files changed, 23 insertions(+), 3 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 26e9ce2..13813a6 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; + var t = this, lastRng; t.editor = ed; @@ -42,13 +42,33 @@ ed.onContextMenu.add(function(ed, e) { if (!e.ctrlKey) { + // Restore the last selection since it was removed + if (lastRng) + ed.selection.setRng(lastRng); + t._getMenu(ed).showMenu(e.clientX, e.clientY); - Event.add(ed.getDoc(), 'click', hide); + Event.add(ed.getDoc(), 'click', function(e) { + hide(ed, e); + }); Event.cancel(e); } }); - function hide() { + ed.onRemove.add(function() { + if (t._menu) + t._menu.removeAll(); + }); + + function hide(ed, e) { + lastRng = null; + + // Since the contextmenu event moves + // the selection we need to store it away + if (e && e.button == 2) { + lastRng = ed.selection.getRng(); + return; + } + if (t._menu) { t._menu.removeAll(); t._menu.destroy(); -- Gitblit v1.9.1