From 1cf2faab3952e37c854ed4f1a8baa43221bc2e6b Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Mon, 1 Nov 2010 19:53:53 +0000 Subject: [PATCH] MDL-24932 moodleemoticon tinymce: use restoreSelection() instead of custom bookmark hack Credit goes to Mauno Korpelainen for the tip on how to sort out this IE behaviour. Also, I moved compressed dialog.js to the revision directory to prevent browser caching issues. --- .../tiny_mce/3.3.9.2/plugins/moodleemoticon/dialog.php | 2 +- .../moodleemoticon/js/{dialog.js => dialog_src.js} | 9 +++------ .../3.3.9.2/plugins/moodleemoticon/js/rev2/dialog.js | 1 + 3 files changed, 5 insertions(+), 7 deletions(-) rename lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/{dialog.js => dialog_src.js} (85%) create mode 100644 lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/rev2/dialog.js diff --git a/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/dialog.php b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/dialog.php index bf96db5a1c2..fcd6e8035d8 100644 --- a/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/dialog.php +++ b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/dialog.php @@ -40,7 +40,7 @@ $stringmanager = get_string_manager(); <?php print_string('moodleemoticon:desc', 'editor_tinymce'); ?> - + diff --git a/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog.js b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog_src.js similarity index 85% rename from lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog.js rename to lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog_src.js index ae504d0a84a..49a3672c2cb 100644 --- a/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog.js +++ b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/dialog_src.js @@ -1,10 +1,6 @@ var MoodleEmoticonDialog = { - bookmark : null, - init : function() { - this.bookmark = tinyMCEPopup.editor.selection.getBookmark(1, true); - // register event handlers for the table rows tinymce.each(tinymce.DOM.select('tr.emoticoninfo', document), function(row) { @@ -34,9 +30,10 @@ var MoodleEmoticonDialog = { i = 0; for (var emoticon in emoticons) { if (i == index) { - tinyMCEPopup.editor.selection.moveToBookmark(this.bookmark); + if (tinymce.isIE) { + tinyMCEPopup.restoreSelection(); + } tinyMCEPopup.editor.execCommand('mceInsertContent', false, emoticons[emoticon]); - this.bookmark = tinyMCEPopup.editor.selection.getBookmark(1, true); tinyMCEPopup.close(); return; } diff --git a/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/rev2/dialog.js b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/rev2/dialog.js new file mode 100644 index 00000000000..69b696cd6d0 --- /dev/null +++ b/lib/editor/tinymce/tiny_mce/3.3.9.2/plugins/moodleemoticon/js/rev2/dialog.js @@ -0,0 +1 @@ +var MoodleEmoticonDialog={init:function(){tinymce.each(tinymce.DOM.select('tr.emoticoninfo',document),function(c){tinymce.dom.Event.add(c,'mouseover',function(e){this.style.backgroundColor='white'},c);tinymce.dom.Event.add(c,'mouseout',function(e){this.style.backgroundColor='transparent'},c);tinymce.dom.Event.add(c,'click',function(e){var a=/^emoticoninfo emoticoninfo-index-([0-9]+)$/.exec(this.className);if(a.length!=2){return true}var b=a[1];MoodleEmoticonDialog.insert(b)},c)})},insert:function(a){emoticons=tinyMCEPopup.editor._emoticons;i=0;for(var b in emoticons){if(i==a){if(tinymce.isIE){tinyMCEPopup.restoreSelection()}tinyMCEPopup.editor.execCommand('mceInsertContent',false,emoticons[b]);tinyMCEPopup.close();return}i++}},highlight:function(a){a.style.backgroundColor="white"},unhighlight:function(a){a.style.backgroundColor="transparent"}};tinyMCEPopup.onInit.add(MoodleEmoticonDialog.init,MoodleEmoticonDialog);