JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.3
[ckeditor.git] / _source / plugins / link / plugin.js
index c8e145f..f0278ec 100644 (file)
@@ -69,10 +69,13 @@ CKEDITOR.plugins.add( 'link',
                        {\r
                                var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element;\r
 \r
-                               if ( element.is( 'a' ) )\r
-                                       evt.data.dialog =  ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link';\r
-                               else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )\r
-                                       evt.data.dialog = 'anchor';\r
+                               if ( !element.isReadOnly() )\r
+                               {\r
+                                       if ( element.is( 'a' ) )\r
+                                               evt.data.dialog =  ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link';\r
+                                       else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )\r
+                                               evt.data.dialog = 'anchor';\r
+                               }\r
                        });\r
 \r
                // If the "menu" plugin is loaded, register the menu items.\r
@@ -176,10 +179,17 @@ CKEDITOR.plugins.link =
         */\r
        getSelectedLink : function( editor )\r
        {\r
-               var range;\r
                try\r
                {\r
-                       range  = editor.getSelection().getRanges( true )[ 0 ];\r
+                       var selection = editor.getSelection();\r
+                       if ( selection.getType() == CKEDITOR.SELECTION_ELEMENT )\r
+                       {\r
+                               var selectedElement = selection.getSelectedElement();\r
+                               if ( selectedElement.is( 'a' ) )\r
+                                       return selectedElement;\r
+                       }\r
+\r
+                       var range = selection.getRanges( true )[ 0 ];\r
                        range.shrink( CKEDITOR.SHRINK_TEXT );\r
                        var root = range.getCommonAncestor();\r
                        return root.getAscendant( 'a', true );\r