Changeset 6235
- Timestamp:
- 12/16/10 23:27:53 (2 years ago)
- Location:
- CKEditor/branches/versions/3.4.x
- Files:
-
- 1 deleted
- 30 edited
-
. (modified) (1 prop)
-
CHANGES.html (modified) (3 diffs)
-
_source/core/config.js (modified) (2 diffs)
-
_source/core/dom/document.js (modified) (1 diff)
-
_source/core/dom/domobject.js (modified) (1 diff)
-
_source/core/dom/element.js (modified) (3 diffs)
-
_source/core/dom/node.js (modified) (2 diffs)
-
_source/core/dom/walker.js (modified) (1 diff)
-
_source/lang/de.js (modified) (1 diff)
-
_source/plugins/bidi/plugin.js (modified) (2 diffs)
-
_source/plugins/colordialog/dialogs/colordialog.js (modified) (2 diffs)
-
_source/plugins/dialog/plugin.js (modified) (1 diff)
-
_source/plugins/floatpanel/plugin.js (modified) (2 diffs)
-
_source/plugins/htmldataprocessor/plugin.js (modified) (3 diffs)
-
_source/plugins/image/dialogs/image.js (modified) (1 diff)
-
_source/plugins/indent/plugin.js (modified) (8 diffs)
-
_source/plugins/justify/plugin.js (modified) (3 diffs)
-
_source/plugins/link/plugin.js (modified) (2 diffs)
-
_source/plugins/list/plugin.js (modified) (2 diffs)
-
_source/plugins/menubutton/plugin.js (modified) (2 diffs)
-
_source/plugins/pastefromword/filter/default.js (modified) (2 diffs)
-
_source/plugins/richcombo/plugin.js (modified) (3 diffs)
-
_source/plugins/specialchar/dialogs/specialchar.js (modified) (2 diffs)
-
_source/plugins/specialchar/lang (deleted)
-
_source/plugins/specialchar/plugin.js (modified) (2 diffs)
-
_source/plugins/styles/plugin.js (modified) (2 diffs)
-
_source/plugins/wysiwygarea/plugin.js (modified) (6 diffs)
-
_source/skins/kama/dialog.css (modified) (2 diffs)
-
_source/skins/office2003/dialog.css (modified) (2 diffs)
-
_source/skins/v2/dialog.css (modified) (2 diffs)
-
_source/themes/default/theme.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
CKEditor/branches/versions/3.4.x
- Property svn:mergeinfo changed
/CKEditor/trunk merged: 6085-6087,6090-6092,6094-6099,6102-6103,6106-6110,6112-6119,6123-6124,6130,6133,6136,6139-6142
- Property svn:mergeinfo changed
-
CKEditor/branches/versions/3.4.x/CHANGES.html
r6234 r6235 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 2 <!-- 3 3 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. … … 36 36 </h1> 37 37 <h3> 38 CKEditor 3. 5(SVN)</h3>38 CKEditor 3.4.3 (SVN)</h3> 39 39 <p> 40 40 New features:</p> … … 45 45 Fixed issues:</p> 46 46 <ul> 47 <li><a href="http://dev.ckeditor.com/ticket/6419">#6419</a> : IE: List creation by merging problem.</li> 48 <li><a href="http://dev.ckeditor.com/ticket/5599">#5599</a> : Labels for special characters need to be resourced.</li> 49 </ul> 50 <h3> 51 CKEditor 3.4.3 (SVN)</h3> 52 <p> 53 New features:</p> 54 <ul> 55 <li></li> 56 </ul> 57 <p> 58 Fixed issues:</p> 59 <ul> 47 <li><a href="http://dev.ckeditor.com/ticket/6554">#6554</a> : Webkit: cannot type after inserting Page Break.</li> 60 48 <li><a href="http://dev.ckeditor.com/ticket/6569">#6569</a> : Indentation now honors text direction of the only item.</li> 61 49 <li><a href="http://dev.ckeditor.com/ticket/6579">#6579</a> : The jQuery adapter wasn't working properly tunning on incompatible environments.</li> 62 50 <li><a href="http://dev.ckeditor.com/ticket/6644">#6644</a> : Restrict onmousedown handler to the toolbar area.</li> 63 51 <li><a href="http://dev.ckeditor.com/ticket/6656">#6656</a> : Panelbutton's buttons became active when clicking on source.</li> 64 <li><a href="http://dev.ckeditor.com/ticket/5404">#5404</a> : Whitespaces (NBSP) were incorrectly added into empty table cells and list items.</li> 52 <li><a href="http://dev.ckeditor.com/ticket/6248">#6248</a> : Whitespaces (NBSP) were incorrectly added into empty table cells and list items.</li> 53 <li><a href="http://dev.ckeditor.com/ticket/6575">#6575</a> : Tabs disappearing in Link dialog after specific action sequence.</li> 54 <li><a href="http://dev.ckeditor.com/ticket/6510">#6510</a> : Margin mirroring doesn't respect style configuration.</li> 55 <li><a href="http://dev.ckeditor.com/ticket/6471">#6471</a> : BIDI: Pressing decrease indent in an RTL bulleted list causes incorrect behaviour.</li> 56 <li><a href="http://dev.ckeditor.com/ticket/6479">#6479</a> : BIDI: Language direction is not being preserved when pressing Enter after a paragraph format has been applied.</li> 57 <li><a href="http://dev.ckeditor.com/ticket/6670">#6670</a> : BIDI: Indent & List icons are not reversed when we apply RTL direction to a paragraph with any of Paragraph Formatting options.</li> 58 <li><a href="http://dev.ckeditor.com/ticket/6640">#6640</a> : Floating panels are now being closed when switching modes.</li> 59 <li><a href="http://dev.ckeditor.com/ticket/4790">#4790</a> : Remove list with multiple items in enterBr doesn't preserve line-breaks.</li> 60 <li><a href="http://dev.ckeditor.com/ticket/6297">#6297</a> : Floated inline elements are no anymore acting in behavior of blocks.</li> 61 <li><a href="http://dev.ckeditor.com/ticket/6171">#6171</a> : [Firefox] Open rich combo scrolls host page to top when editor has vertical scrollbar.</li> 62 <li><a href="http://dev.ckeditor.com/ticket/6330">#6330</a> : List bullet form MS Word with Roman numbering are not preserved.</li> 63 <li><a href="http://dev.ckeditor.com/ticket/6720">#6720</a> : Attribute protection might detect wrong elements.</li> 64 <li><a href="http://dev.ckeditor.com/ticket/6580">#6580</a> : [IE9] Flash dialog doesn't get filled up.</li> 65 <li><a href="http://dev.ckeditor.com/ticket/6447">#6447</a> : Outdent list with "indentClasses" config doesn't work.</li> 66 <li><a href="http://dev.ckeditor.com/ticket/5894">#5894</a> : Custom buttons added at bottom of dialogs don't expand to include their contents.</li> 67 <li><a href="http://dev.ckeditor.com/ticket/6513">#6513</a> : Wrong ARIA attributes created on list options of "Styles" rich combo.</li> 68 <li><a href="http://dev.ckeditor.com/ticket/6150">#6150</a> : [Safari] Color dialog was broken.</li> 69 <li><a href="http://dev.ckeditor.com/ticket/6629">#6629</a> : Pre-formatted block is not anymore been listed as unexitable element.</li> 65 70 </ul> 66 71 <h3> -
CKEditor/branches/versions/3.4.x/_source/core/config.js
r6043 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 350 350 /** 351 351 * List of regular expressions to be executed over the input HTML, 352 * indicating code that must stay untouched.352 * indicating HTML source code that matched must <strong>not</strong> present in WYSIWYG mode for editing. 353 353 * @type Array 354 354 * @default [] (empty array) -
CKEditor/branches/versions/3.4.x/_source/core/dom/document.js
r4904 r6235 151 151 getElementsByTag : function( tagName, namespace ) 152 152 { 153 if ( ! CKEDITOR.env.ie&& namespace )153 if ( !( CKEDITOR.env.ie && ! ( document.documentMode > 8 ) ) && namespace ) 154 154 tagName = namespace + ':' + tagName; 155 155 return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) ); -
CKEditor/branches/versions/3.4.x/_source/core/dom/domobject.js
r6234 r6235 168 168 * Sets a data slot value for this object. These values are shared by all 169 169 * instances pointing to that same DOM object. 170 * <strong>Note:</strong> The created data slot is only guarantied to be available on this unique dom node,171 * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml)172 * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead.173 170 * @name CKEDITOR.dom.domObject.prototype.setCustomData 174 171 * @function -
CKEditor/branches/versions/3.4.x/_source/core/dom/element.js
r6043 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 614 614 var nodeName = this.$.nodeName.toLowerCase(); 615 615 616 if ( CKEDITOR.env.ie )616 if ( CKEDITOR.env.ie && ! ( document.documentMode > 8 ) ) 617 617 { 618 618 var scopeName = this.$.scopeName; … … 721 721 var thisLength = thisAttribs.length, 722 722 otherLength = otherAttribs.length; 723 724 if ( !CKEDITOR.env.ie && thisLength != otherLength )725 return false;726 723 727 724 for ( var i = 0 ; i < thisLength ; i++ ) -
CKEditor/branches/versions/3.4.x/_source/core/dom/node.js
r6234 r6235 108 108 var $clone = this.$.cloneNode( includeChildren ); 109 109 110 var removeIds = function( node ) 111 { 112 if ( node.nodeType != CKEDITOR.NODE_ELEMENT ) 113 return; 114 115 if ( !cloneId ) 116 node.removeAttribute( 'id', false ); 117 node.removeAttribute( '_cke_expando', false ); 118 119 if ( includeChildren ) 120 { 110 if ( !cloneId ) 111 { 112 var removeIds = function( node ) 113 { 114 if ( node.nodeType != CKEDITOR.NODE_ELEMENT ) 115 return; 116 117 node.removeAttribute( 'id', false ) ; 118 node.removeAttribute( '_cke_expando', false ) ; 119 121 120 var childs = node.childNodes; 122 for ( var i=0 ; i < childs.length; i++ )121 for ( var i=0 ; i < childs.length ; i++ ) 123 122 removeIds( childs[ i ] ); 124 } 125 }; 126 127 // The "id" attribute should never be cloned to avoid duplication.128 removeIds( $clone );123 }; 124 125 // The "id" attribute should never be cloned to avoid duplication. 126 removeIds( $clone ); 127 } 129 128 130 129 return new CKEDITOR.dom.node( $clone ); … … 661 660 }, 662 661 662 /** 663 * Checks is this node is read-only (should not be changed). It 664 * additionaly returns the element, if any, which defines the read-only 665 * state of this node. It may be the node itself or any of its parent 666 * nodes. 667 * @returns {CKEDITOR.dom.element|Boolean} An element containing 668 * read-only attributes or "false" if none is found. 669 * @since 3.5 670 * @example 671 * // For the following HTML: 672 * // <div contenteditable="false">Some <b>text</b></div> 673 * 674 * // If "ele" is the above <div> 675 * ele.getReadOnlyRoot(); // the <div> element 676 * 677 * // If "ele" is the above <b> 678 * ele.getReadOnlyRoot(); // the <div> element 679 */ 663 680 isReadOnly : function() 664 681 { -
CKEditor/branches/versions/3.4.x/_source/core/dom/walker.js
r6034 r6235 335 335 'table-cell' : 1, 336 336 'table-caption' : 1 337 }, 338 blockBoundaryNodeNameMatch = { hr : 1 }; 337 }; 339 338 340 339 CKEDITOR.dom.element.prototype.isBlockBoundary = function( customNodeNames ) 341 340 { 342 var nodeNameMatches = CKEDITOR.tools.extend( {}, 343 blockBoundaryNodeNameMatch, customNodeNames || {} ); 344 345 return blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] ||346 nodeNameMatches[ this.getName() ];341 var nodeNameMatches = CKEDITOR.tools.extend( {}, CKEDITOR.dtd.$block, customNodeNames || {} ); 342 343 // Don't consider floated formatting as block boundary, fall back to dtd check in that case. (#6297) 344 return this.getComputedStyle( 'float' ) == 'none' && blockBoundaryDisplayMatch[ this.getComputedStyle( 'display' ) ] 345 || nodeNameMatches[ this.getName() ]; 347 346 }; 348 347 -
CKEditor/branches/versions/3.4.x/_source/lang/de.js
r5887 r6235 722 722 title : 'Über CKEditor', 723 723 dlgTitle : 'Über CKEditor', 724 moreInfo : 'Für Informationen Liztenzbestimmungen besuchen sie bitte unsere Webseite:',724 moreInfo : 'Für Informationen über unsere Lizenzbestimmungen besuchen sie bitte unsere Webseite:', 725 725 copy : 'Copyright © $1. Alle Rechte vorbehalten.' 726 726 }, -
CKEditor/branches/versions/3.4.x/_source/plugins/bidi/plugin.js
r6083 r6235 49 49 var editor = evt.editor, 50 50 chromeRoot = editor.container.getChild( 1 ), 51 directionNode = getElementForDirection( evt.data.path.lastElement );51 directionNode = evt.data.path.block || evt.data.path.blockLimit; 52 52 53 53 if ( directionNode && editor.lang.dir != directionNode.getComputedStyle( 'direction' ) ) … … 124 124 // like a mirror. (#5910) 125 125 if ( dir != dirBefore ) 126 editor.fire( 'dirChanged', element ); 126 { 127 editor.fire( 'dirChanged', 128 { 129 node : element, 130 dir : dir 131 } ); 132 } 127 133 128 134 editor.forceNextSelectionCheck(); -
CKEditor/branches/versions/3.4.x/_source/plugins/colordialog/dialogs/colordialog.js
r6002 r6235 237 237 var table = new $el( 'table' ); 238 238 createColorTable(); 239 var html = table.getHtml(); 239 240 240 241 var numbering = function( id ) … … 271 272 { 272 273 type : 'html', 273 html : '<table role="listbox" aria-labelledby="' + tableLabelId + '" onmouseout="CKEDITOR.tools.callFunction( ' + onMouseout + ' );">' + table.getHtml() + '</table>' + 274 '<span id="' + tableLabelId + '" class="cke_voice_label">' + lang.options +'</span>', 274 html : '<table role="listbox" aria-labelledby="' + tableLabelId + '" onmouseout="CKEDITOR.tools.callFunction( ' + onMouseout + ' );">' + 275 ( !CKEDITOR.env.webkit ? html : '' ) + 276 '</table><span id="' + tableLabelId + '" class="cke_voice_label">' + lang.options +'</span>', 275 277 onLoad : function() 276 278 { 277 279 var table = CKEDITOR.document.getById( this.domId ); 278 280 table.on( 'mouseover', updateHighlight ); 281 // In WebKit, the table content must be inserted after this event call (#6150) 282 CKEDITOR.env.webkit && table.setHtml( html ); 279 283 }, 280 284 focus: function() -
CKEditor/branches/versions/3.4.x/_source/plugins/dialog/plugin.js
r6084 r6235 1030 1030 { 1031 1031 var tab = this._.tabs[id] && this._.tabs[id][0]; 1032 if ( !tab || this._.pageCount == 1 )1032 if ( !tab || this._.pageCount == 1 || !tab.isVisible() ) 1033 1033 return; 1034 1034 // Switch to other tab first when we're hiding the active tab. -
CKEditor/branches/versions/3.4.x/_source/plugins/floatpanel/plugin.js
r6043 r6235 61 61 dir : editor.lang.dir 62 62 }; 63 64 editor.on( 'mode', function(){ this.hide(); }, this ); 63 65 }, 64 66 … … 124 126 element.setStyles( 125 127 { 126 top : 0,128 top : top + 'px', 127 129 left: 0, 128 130 display : '' 129 131 }); 132 130 133 // Don't use display or visibility style because we need to 131 134 // calculate the rendering layout later and focus the element. -
CKEditor/branches/versions/3.4.x/_source/plugins/htmldataprocessor/plugin.js
r6234 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 273 273 } 274 274 275 var protectAttributeRegex = /<((?:a|area|img|input) [\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi,275 var protectAttributeRegex = /<((?:a|area|img|input)\b[\s\S]*?\s)((href|src|name)\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|(?:[^ "'>]+)))([^>]*)>/gi, 276 276 findSavedSrcRegex = /\s_cke_saved_src\s*=/; 277 277 … … 502 502 /** 503 503 * Whether to force using "&" instead of "&amp;" in elements attributes 504 * values . It's not recommended to change this setting for compliance with the505 * W3C XHTML 1.0 standards 506 * (<a href="http://www.w3.org/TR/xhtml1/#C_12">C.12, XHTML 1.0</a>).504 * values, it's not recommended to change this setting for compliance with the 505 * W3C XHTML 1.0 standards (<a href="http://www.w3.org/TR/xhtml1/#C_12">C.12, XHTML 1.0</a>). 506 * @name CKEDITOR.config.forceSimpleAmpersand 507 507 * @type Boolean 508 508 * @default false -
CKEditor/branches/versions/3.4.x/_source/plugins/image/dialogs/image.js
r6002 r6235 1149 1149 setup : function( type, element ) 1150 1150 { 1151 if ( type == LINK ) 1152 this.setValue( element.getAttribute( 'target' ) ); 1151 this.setValue( element.getAttribute( 'target' ) || '' ); 1153 1152 }, 1154 1153 commit : function( type, element ) -
CKEditor/branches/versions/3.4.x/_source/plugins/indent/plugin.js
r6234 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 248 248 indentStep = Math.min( indentStep, editor.config.indentClasses.length ); 249 249 indentStep = Math.max( indentStep, 0 ); 250 var className = CKEDITOR.tools.ltrim( element.$.className.replace( self.classNameRegex, '' ) ); 251 if ( indentStep < 1 ) 252 element.$.className = className; 253 else 250 element.$.className = CKEDITOR.tools.ltrim( element.$.className.replace( self.classNameRegex, '' ) ); 251 if ( indentStep > 0 ) 254 252 element.addClass( editor.config.indentClasses[ indentStep - 1 ] ); 255 253 } … … 393 391 { 394 392 var range = new CKEDITOR.dom.range( editor.document ); 395 range.setStartBefore( e.data );396 range.setEndAfter( e.data );393 range.setStartBefore( e.data.node ); 394 range.setEndAfter( e.data.node ); 397 395 398 396 var walker = new CKEDITOR.dom.walker( range ), … … 404 402 { 405 403 // A child with the defined dir is to be ignored. 406 if ( !node.equals( e.data ) && node.getDirection() )404 if ( !node.equals( e.data.node ) && node.getDirection() ) 407 405 { 408 406 range.setStartAfter( node ); … … 411 409 } 412 410 411 // Switch alignment classes. 412 var classes = editor.config.indentClasses; 413 if ( classes ) 414 { 415 var suffix = ( e.data.dir == 'ltr' ) ? [ '_rtl', '' ] : [ '', '_rtl' ]; 416 for ( var i = 0; i < classes.length; i++ ) 417 { 418 if ( node.hasClass( classes[ i ] + suffix[ 0 ] ) ) 419 { 420 node.removeClass( classes[ i ] + suffix[ 0 ] ); 421 node.addClass( classes[ i ] + suffix[ 1 ] ); 422 } 423 } 424 } 425 413 426 // Switch the margins. 414 427 var marginLeft = node.getStyle( 'margin-right' ), … … 428 441 /** 429 442 * Size of each indentation step 443 * @name CKEDITOR.config.indentOffset 430 444 * @type Number 431 445 * @default 40 … … 436 450 /** 437 451 * Unit for the indentation style 452 * @name CKEDITOR.config.indentUnit 438 453 * @type String 439 454 * @default 'px' … … 445 460 * List of classes to use for indenting the contents. If it's null, no classes will be used 446 461 * and instead the {@link #indentUnit} and {@link #indentOffset} properties will be used. 462 * @name CKEDITOR.config.indentClasses 447 463 * @type Array 448 464 * default null -
CKEditor/branches/versions/3.4.x/_source/plugins/justify/plugin.js
r6083 r6235 88 88 89 89 var range = new CKEDITOR.dom.range( editor.document ); 90 range.setStartBefore( e.data );91 range.setEndAfter( e.data );90 range.setStartBefore( e.data.node ); 91 range.setEndAfter( e.data.node ); 92 92 93 93 var walker = new CKEDITOR.dom.walker( range ), … … 99 99 { 100 100 // A child with the defined dir is to be ignored. 101 if ( !node.equals( e.data ) && node.getDirection() )101 if ( !node.equals( e.data.node ) && node.getDirection() ) 102 102 { 103 103 range.setStartAfter( node ); … … 107 107 108 108 // Switch the alignment. 109 var classes = editor.config.justifyClasses; 110 if ( classes ) 111 { 112 // The left align class. 113 if ( node.hasClass( classes[ 0 ] ) ) 114 { 115 node.removeClass( classes[ 0 ] ); 116 node.addClass( classes[ 2 ] ); 117 } 118 // The right align class. 119 else if ( node.hasClass( classes[ 2 ] ) ) 120 { 121 node.removeClass( classes[ 2 ] ); 122 node.addClass( classes[ 0 ] ); 123 } 124 } 125 126 // Always switch CSS margins. 109 127 var style = 'text-align'; 110 128 var align = node.getStyle( style ); -
CKEditor/branches/versions/3.4.x/_source/plugins/link/plugin.js
r5887 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 70 70 var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element; 71 71 72 if ( element.is( 'a' ) ) 73 evt.data.dialog = ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link'; 74 else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' ) 75 evt.data.dialog = 'anchor'; 72 if ( !element.isReadOnly() ) 73 { 74 if ( element.is( 'a' ) ) 75 evt.data.dialog = ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link'; 76 else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' ) 77 evt.data.dialog = 'anchor'; 78 } 76 79 }); 77 80 -
CKEditor/branches/versions/3.4.x/_source/plugins/list/plugin.js
r6082 r6235 12 12 var listNodeNames = { ol : 1, ul : 1 }, 13 13 emptyTextRegex = /^[\n\r\t ]*$/; 14 15 var whitespaces = CKEDITOR.dom.walker.whitespaces(), 16 bookmarks = CKEDITOR.dom.walker.bookmark(), 17 nonEmpty = function( node ){ return !( whitespaces( node ) || bookmarks( node ) ); }; 14 18 15 19 CKEDITOR.plugins.list = { … … 134 138 && currentIndex != listArray.length - 1 ) 135 139 { 136 if ( currentListItem.getLast() 137 && currentListItem.getLast().type == CKEDITOR.NODE_ELEMENT 138 && currentListItem.getLast().getAttribute( 'type' ) == '_moz' ) 139 currentListItem.getLast().remove(); 140 currentListItem.appendBogus(); 140 var last = currentListItem.getLast(); 141 if ( last && last.type == CKEDITOR.NODE_ELEMENT 142 && last.getAttribute( 'type' ) == '_moz' ) 143 { 144 last.remove(); 145 } 146 147 if ( !( last = currentListItem.getLast( nonEmpty ) 148 && last.type == CKEDITOR.NODE_ELEMENT 149 && last.getName() in CKEDITOR.dtd.$block ) ) 150 { 151 currentListItem.append( doc.createElement( 'br' ) ); 152 } 141 153 } 142 154 -
CKEditor/branches/versions/3.4.x/_source/plugins/menubutton/plugin.js
r5283 r6235 41 41 menu.onHide = CKEDITOR.tools.bind( function() 42 42 { 43 this.setState( _.previousState);43 this.setState( this.modes && this.modes[ editor.mode ] ? _.previousState : CKEDITOR.TRISTATE_DISABLED ); 44 44 }, 45 45 this ); … … 47 47 // Initialize the menu items at this point. 48 48 if ( this.onMenu ) 49 {50 49 menu.addListener( this.onMenu ); 51 }52 50 } 53 51 -
CKEditor/branches/versions/3.4.x/_source/plugins/pastefromword/filter/default.js
r6002 r6235 121 121 var cssLengthRelativeUnit = /^([.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz){1}?/i; 122 122 var emptyMarginRegex = /^(?:\b0[^\s]*\s*){1,4}$/; // e.g. 0px 0pt 0px 123 var romanLiternalPattern = '^m{0,4}(cm|cd|d?c{0,3})(xc|xl|l?x{0,3})(ix|iv|v?i{0,3})$', 124 lowerRomanLiteralRegex = new RegExp( romanLiternalPattern ), 125 upperRomanLiteralRegex = new RegExp( romanLiternalPattern.toUpperCase() ); 123 126 124 127 var listBaseIndent = 0, … … 145 148 if ( !isNaN( bulletStyle[ 1 ] ) ) 146 149 bulletStyle = 'decimal'; 147 // No way to distinguish between Roman numerals and Alphas, 148 // detect them as a whole. 150 else if ( lowerRomanLiteralRegex.test( bulletStyle[ 1 ] ) ) 151 bulletStyle = 'lower-roman'; 152 else if ( upperRomanLiteralRegex.test( bulletStyle[ 1 ] ) ) 153 bulletStyle = 'upper-roman'; 149 154 else if ( /^[a-z]+$/.test( bulletStyle[ 1 ] ) ) 150 155 bulletStyle = 'lower-alpha'; -
CKEditor/branches/versions/3.4.x/_source/plugins/richcombo/plugin.js
r6002 r6235 107 107 } 108 108 109 if ( !_.committed ) 110 { 111 _.list.commit(); 112 _.committed = 1; 113 } 109 !_.committed && this.commit(); 114 110 115 111 var value = this.getValue(); … … 245 241 this.element.getFirst().removeClass( me.className + '_panel' ); 246 242 247 me.setState( CKEDITOR.TRISTATE_OFF);243 me.setState( me.modes && me.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED ); 248 244 249 245 me._.on = 0; … … 351 347 { 352 348 this._.list.commit(); 349 this._.committed = 1; 353 350 }, 354 351 -
CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/dialogs/specialchar.js
r6234 r6235 223 223 buttons : [ CKEDITOR.dialog.cancelButton ], 224 224 charColumns : 17, 225 chars : 226 [ 227 '!','"','#','$','%','&',"'",'(',')','*','+','-','.','/', 228 '0','1','2','3','4','5','6','7','8','9',':',';', 229 '<','=','>','?','@', 230 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 231 'P','Q','R','S','T','U','V','W','X','Y','Z', 232 '[',']','^','_','`', 233 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p', 234 'q','r','s','t','u','v','w','x','y','z', 235 '{','|','}','~','€(EURO SIGN)','‘(LEFT SINGLE QUOTATION MARK)','’(RIGHT SINGLE QUOTATION MARK)','“(LEFT DOUBLE QUOTATION MARK)', 236 '”(RIGHT DOUBLE QUOTATION MARK)','–(EN DASH)','—(EM DASH)','¡(INVERTED EXCLAMATION MARK)','¢(CENT SIGN)','£(POUND SIGN)', 237 '¤(CURRENCY SIGN)','¥(YEN SIGN)','¦(BROKEN BAR)','§(SECTION SIGN)','¨(DIAERESIS)','©(COPYRIGHT SIGN)','ª(FEMININE ORDINAL INDICATOR)', 238 '«(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','¬(NOT SIGN)','®(REGISTERED SIGN)','¯(MACRON)','°(DEGREE SIGN)','±(PLUS-MINUS SIGN)','²(SUPERSCRIPT TWO)', 239 '³(SUPERSCRIPT THREE)','´(ACUTE ACCENT)','µ(MICRO SIGN)','¶(PILCROW SIGN)','·(MIDDLE DOT)','¸(CEDILLA)', 240 '¹(SUPERSCRIPT ONE)','º(MASCULINE ORDINAL INDICATOR)','»(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','¼(VULGAR FRACTION ONE QUARTER)','½(VULGAR FRACTION ONE HALF)','¾(VULGAR FRACTION THREE QUARTERS)', 241 '¿(INVERTED QUESTION MARK)','À(LATIN CAPITAL LETTER A WITH GRAVE)','Á(LATIN CAPITAL LETTER A WITH ACUTE)','Â(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','Ã(LATIN CAPITAL LETTER A WITH TILDE)','Ä(LATIN CAPITAL LETTER A WITH DIAERESIS)', 242 'Å(LATIN CAPITAL LETTER A WITH RING ABOVE)','Æ(LATIN CAPITAL LETTER AE)','Ç(LATIN CAPITAL LETTER C WITH CEDILLA)','È(LATIN CAPITAL LETTER E WITH GRAVE)','É(LATIN CAPITAL LETTER E WITH ACUTE)','Ê(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)', 243 'Ë(LATIN CAPITAL LETTER E WITH DIAERESIS)','Ì(LATIN CAPITAL LETTER I WITH GRAVE)','Í(LATIN CAPITAL LETTER I WITH ACUTE)','Î(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','Ï(LATIN CAPITAL LETTER I WITH DIAERESIS)','Ð(LATIN CAPITAL LETTER ETH)', 244 'Ñ(LATIN CAPITAL LETTER N WITH TILDE)','Ò(LATIN CAPITAL LETTER O WITH GRAVE)','Ó(LATIN CAPITAL LETTER O WITH ACUTE)','Ô(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','Õ(LATIN CAPITAL LETTER O WITH TILDE)','Ö(LATIN CAPITAL LETTER O WITH DIAERESIS)', 245 '×(MULTIPLICATION SIGN)','Ø(LATIN CAPITAL LETTER O WITH STROKE)','Ù(LATIN CAPITAL LETTER U WITH GRAVE)','Ú(LATIN CAPITAL LETTER U WITH ACUTE)','Û(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','Ü(LATIN CAPITAL LETTER U WITH DIAERESIS)', 246 'Ý(LATIN CAPITAL LETTER Y WITH ACUTE)','Þ(LATIN CAPITAL LETTER THORN)','ß(LATIN SMALL LETTER SHARP S)','à(LATIN SMALL LETTER A WITH GRAVE)','á(LATIN SMALL LETTER A WITH ACUTE)','â(LATIN SMALL LETTER A WITH CIRCUMFLEX)', 247 'ã(LATIN SMALL LETTER A WITH TILDE)','ä(LATIN SMALL LETTER A WITH DIAERESIS)','å(LATIN SMALL LETTER A WITH RING ABOVE)','æ(LATIN SMALL LETTER AE)','ç(LATIN SMALL LETTER C WITH CEDILLA)','è(LATIN SMALL LETTER E WITH GRAVE)', 248 'é(LATIN SMALL LETTER E WITH ACUTE)','ê(LATIN SMALL LETTER E WITH CIRCUMFLEX)','ë(LATIN SMALL LETTER E WITH DIAERESIS)','ì(LATIN SMALL LETTER I WITH GRAVE)','í(LATIN SMALL LETTER I WITH ACUTE)','î(LATIN SMALL LETTER I WITH CIRCUMFLEX)', 249 'ï(LATIN SMALL LETTER I WITH DIAERESIS)','ð(LATIN SMALL LETTER ETH)','ñ(LATIN SMALL LETTER N WITH TILDE)','ò(LATIN SMALL LETTER O WITH GRAVE)','ó(LATIN SMALL LETTER O WITH ACUTE)','ô(LATIN SMALL LETTER O WITH CIRCUMFLEX)', 250 'õ(LATIN SMALL LETTER O WITH TILDE)','ö(LATIN SMALL LETTER O WITH DIAERESIS)', 251 '÷(DIVISION SIGN)','ø(LATIN SMALL LETTER O WITH STROKE)', 252 'ù(LATIN SMALL LETTER U WITH GRAVE)','ú(LATIN SMALL LETTER U WITH ACUTE)', 253 'û(LATIN SMALL LETTER U WITH CIRCUMFLEX)','ü(LATIN SMALL LETTER U WITH DIAERESIS)', 254 'ü(LATIN SMALL LETTER U WITH DIAERESIS)','ý(LATIN SMALL LETTER Y WITH ACUTE)','þ(LATIN SMALL LETTER THORN)','ÿ(LATIN SMALL LETTER Y WITH DIAERESIS)', 255 'Œ(LATIN CAPITAL LIGATURE OE)', 256 'œ(LATIN SMALL LIGATURE OE)','Ŵ(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)', 257 'Ŷ(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','ŵ(LATIN SMALL LETTER W WITH CIRCUMFLEX)', 258 'ŷ(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','‚(SINGLE LOW-9 QUOTATION MARK)', 259 '‛(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','„(DOUBLE LOW-9 QUOTATION MARK)','…(HORIZONTAL ELLIPSIS)', 260 '™(TRADE MARK SIGN)','►(BLACK RIGHT-POINTING POINTER)','•(BULLET)', 261 '→(RIGHTWARDS ARROW)','⇒(RIGHTWARDS DOUBLE ARROW)','⇔(LEFT RIGHT DOUBLE ARROW)','♦(BLACK DIAMOND SUIT)','≈(ALMOST EQUAL TO)' 262 ], 225 263 onLoad : function() 226 264 { 227 265 var columns = this.definition.charColumns, 228 extraChars = editor.config.extraSpecialChars, 229 chars = editor.config.specialChars; 266 chars = this.definition.chars; 230 267 231 268 var charsTableLabel = CKEDITOR.tools.getNextId() + '_specialchar_table_label'; … … 248 285 { 249 286 charDesc = ''; 250 251 if ( character instanceof Array ) 252 { 253 charDesc = character[ 1 ]; 254 character = character[ 0 ]; 255 } 256 else 257 { 258 var _tmpName = character.toLowerCase().replace( '&', '' ).replace( ';', '' ).replace( '#', '' ); 259 260 // Use character in case description unavailable. 261 charDesc = lang[ _tmpName ] || character; 262 } 287 character = character.replace( /\((.*?)\)/, function( match, desc ) 288 { 289 charDesc = desc; 290 return ''; 291 } ); 292 293 // Use character in case description unavailable. 294 charDesc = charDesc || character; 263 295 264 296 var charLabelId = 'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber(); -
CKEditor/branches/versions/3.4.x/_source/plugins/specialchar/plugin.js
r6234 r6235 10 10 CKEDITOR.plugins.add( 'specialchar', 11 11 { 12 // List of available localizations.13 availableLangs : { en:1 },14 15 12 init : function( editor ) 16 13 { 17 var pluginName = 'specialchar', 18 plugin = this; 14 var pluginName = 'specialchar'; 19 15 20 16 // Register the dialog. 21 17 CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' ); 22 18 23 editor.addCommand( pluginName, 24 { 25 exec : function() 26 { 27 var langCode = editor.langCode; 28 langCode = plugin.availableLangs[ langCode ] ? langCode : 'en'; 29 30 CKEDITOR.scriptLoader.load( 31 CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ), 32 function() 33 { 34 CKEDITOR.tools.extend( editor.lang.specialChar, plugin.lang[ langCode ] ); 35 editor.openDialog( pluginName ); 36 }); 37 }, 38 modes : { wysiwyg:1 }, 39 canUndo : false 40 }); 19 // Register the command. 20 editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) ); 41 21 42 22 // Register the toolbar button. … … 48 28 } 49 29 } ); 50 51 /**52 * The list of special characters visible in Special Character dialog.53 * @type Array54 * @example55 * config.specialChars = [ '"', '’', [ '&custom;', 'Custom label' ] ];56 * config.specialChars = config.specialChars.concat( [ '"', [ '’', 'Custom label' ] ] );57 */58 CKEDITOR.config.specialChars =59 [60 '!','"','#','$','%','&',"'",'(',')','*','+','-','.','/',61 '0','1','2','3','4','5','6','7','8','9',':',';',62 '<','=','>','?','@',63 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',64 'P','Q','R','S','T','U','V','W','X','Y','Z',65 '[',']','^','_','`',66 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',67 'q','r','s','t','u','v','w','x','y','z',68 '{','|','}','~',69 "€", "‘", "’", "“", "”", "–", "—", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "®", "¯", "°", "&", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "&", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ŵ", "Ŷ", "ŵ", "ŷ", "‚", "‛", "„", "…", "™", "►", "•", "→", "⇒", "⇔", "♦", "≈"70 ]; -
CKEditor/branches/versions/3.4.x/_source/plugins/styles/plugin.js
r6043 r6235 13 13 * editing area. The current state is passed to the function. The possible 14 14 * states are {@link CKEDITOR.TRISTATE_ON} and {@link CKEDITOR.TRISTATE_OFF}. 15 * @param {CKEDITOR.style} The style to be watched.16 * @param {Function} The function to be called when the style state changes.15 * @param {CKEDITOR.style} style The style to be watched. 16 * @param {Function} callback The function to be called when the style state changes. 17 17 * @example 18 18 * // Create a style object for the <b> element. … … 1409 1409 /** 1410 1410 * Gets the current styleSet for this instance 1411 * @param {Function} The function to be called with the styles data.1411 * @param {Function} callback The function to be called with the styles data. 1412 1412 * @example 1413 1413 * editor.getStylesSet( function( stylesDefinitions ) {} ); -
CKEditor/branches/versions/3.4.x/_source/plugins/wysiwygarea/plugin.js
r6043 r6235 1 /*1 /* 2 2 Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 3 3 For licensing, see LICENSE.html or http://ckeditor.com/license … … 12 12 { 13 13 // List of elements in which has no way to move editing focus outside. 14 var nonExitableElementNames = { table:1 ,pre:1};14 var nonExitableElementNames = { table:1 }; 15 15 16 16 // Matching an empty paragraph at the end of document. … … 18 18 19 19 var notWhitespaceEval = CKEDITOR.dom.walker.whitespaces( true ); 20 21 // Elements that could have empty new line around, including table, pre-formatted block, hr, page-break. (#6554) 22 function nonExitable( element ) 23 { 24 return ( element.getName() in nonExitableElementNames ) 25 || element.isBlockBoundary() && CKEDITOR.dtd.$empty[ element.getName() ]; 26 } 20 27 21 28 function checkReadOnly( selection ) … … 318 325 if ( element && 319 326 element.type == CKEDITOR.NODE_ELEMENT && 320 !nonExitable ElementNames[ element.getName() ])327 !nonExitable( element ) ) 321 328 { 322 329 range.moveToElementEditStart( element ); … … 328 335 if ( element && 329 336 element.type == CKEDITOR.NODE_ELEMENT && 330 !nonExitable ElementNames[ element.getName() ])337 !nonExitable( element ) ) 331 338 { 332 339 range.moveToElementEditEnd( element ); … … 1027 1034 focusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml( 1028 1035 // Use 'span' instead of anything else to fly under the screen-reader radar. (#5049) 1029 '<span tabindex="-1" style="position:absolute; left:-10000" role="presentation"></span>' ) );1036 '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' ) ); 1030 1037 1031 1038 focusGrabber.on( 'focus', function() -
CKEditor/branches/versions/3.4.x/_source/skins/kama/dialog.css
r6002 r6235 395 395 .cke_skin_kama a.cke_dialog_ui_button_cancel span 396 396 { 397 width:60px; 397 398 padding-right: 20px; 398 399 padding-left: 20px; … … 518 519 { 519 520 margin: 7px 0; 520 width: 60px;521 521 text-align: center; 522 522 } -
CKEditor/branches/versions/3.4.x/_source/skins/office2003/dialog.css
r6002 r6235 430 430 } 431 431 432 .cke_skin_office2003 a.cke_dialog_ui_button_ok span, 433 .cke_skin_office2003 a.cke_dialog_ui_button_cancel span 434 { 435 width:60px; 436 } 437 432 438 .cke_skin_office2003 span.cke_dialog_ui_button 433 439 { … … 486 492 .cke_skin_office2003 .cke_dialog_footer_buttons span.cke_dialog_ui_button 487 493 { 488 width: 60px;489 494 margin: 7px 0; 490 495 } -
CKEditor/branches/versions/3.4.x/_source/skins/v2/dialog.css
r6002 r6235 429 429 } 430 430 431 .cke_skin_v2 a.cke_dialog_ui_button_ok span, 432 .cke_skin_v2 a.cke_dialog_ui_button_cancel span 433 { 434 width:60px; 435 } 436 431 437 .cke_skin_v2 span.cke_dialog_ui_button 432 438 { … … 482 488 .cke_skin_v2 .cke_dialog_footer_buttons span.cke_dialog_ui_button 483 489 { 484 width: 60px;485 490 margin: 7px 0; 486 491 } -
CKEditor/branches/versions/3.4.x/_source/themes/default/theme.js
r6234 r6235 185 185 '<a id="%close_button#" class="%close_button" href="javascript:void(0)" title="' + editor.lang.common.close+'" role="button"><span class="cke_label">X</span></a>' + 186 186 '<div id="%tabs#" class="%tabs" role="tablist"></div>' + 187 '<table class="%contents" role="presentation"><tr>' + 187 '<table class="%contents" role="presentation">' + 188 '<tr>' + 188 189 '<td id="%contents#" class="%contents" role="presentation"></td>' + 189 '</tr></table>' + 190 '<div id="%footer#" class="%footer" role="presentation"></div>' + 190 '</tr>' + 191 '<tr>' + 192 '<td id="%footer#" class="%footer" role="presentation"></td>' + 193 '</tr>' + 194 '</table>' + 191 195 '</div>' + 192 196 '<div id="%tl#" class="%tl"></div>' + … … 227 231 tabs : body.getChild( 2 ), 228 232 contents : body.getChild( [ 3, 0, 0, 0 ] ), 229 footer : body.getChild( 4)233 footer : body.getChild( [ 3, 0, 1, 0 ] ) 230 234 } 231 235 };
Note: See TracChangeset
for help on using the changeset viewer.
