Fixes #1539
[redakcja.git] / redakcja / static / js / wiki / view_editor_wysiwyg.js
index 75c1c63..1b75500 100644 (file)
@@ -37,7 +37,7 @@
         }
 
         // don't allow themes inside annotations
-        if (node.is('*[x-annotation-box] *'))
+        if (node.closest('[x-node="pe"]').length > 0)
             return false;
 
         return true;
                         localStorage.setItem("recentSymbols", insertVal);
                     }
                 }
-                
+                $(specialCharsContainer).remove();
             });         
             $('#specialCharsClose').click(function(){
                 $(specialCharsContainer).remove();
         /* http://www.scottklarr.com/topic/425/how-to-insert-text-into-a-textarea-where-the-cursor-is/ */
         var scrollPos = txtarea.scrollTop; 
         var strPos = 0; 
+        var backStart = 0;
         var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? "ff" : (document.selection ? "ie" : false ) );
         if (br == "ie") { 
             txtarea.focus();
             var range = document.selection.createRange(); 
             range.moveStart ('character', -txtarea.value.length); 
-            strPos = range.text.length; 
-        } else if (br == "ff") strPos = txtarea.selectionStart; 
+            strPos = backStart = range.text.length; 
+        } else if (br == "ff") {
+            strPos = txtarea.selectionStart; 
+            backStart = txtarea.selectionEnd;
+        }
         var front = (txtarea.value).substring(0,strPos); 
-        var back = (txtarea.value).substring(strPos,txtarea.value.length); 
+        var back = (txtarea.value).substring(backStart,txtarea.value.length); 
         txtarea.value=front+text+back; 
         strPos = strPos + text.length; 
         if (br == "ie") {