/*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
{\r
var tag = tags[ i ];\r
styles[ tag ] = new CKEDITOR.style( config[ 'format_' + tag ] );\r
+ styles[ tag ]._.enterMode = editor.config.enterMode;\r
}\r
\r
editor.ui.addRichCombo( 'Format',\r
{\r
label : lang.label,\r
title : lang.panelTitle,\r
- voiceLabel : lang.voiceLabel,\r
className : 'cke_format',\r
- multiSelect : false,\r
-\r
panel :\r
{\r
- css : [ CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ].concat( config.contentsCss ),\r
- voiceLabel : lang.panelVoiceLabel\r
+ css : editor.skin.editor.css.concat( config.contentsCss ),\r
+ multiSelect : false,\r
+ attributes : { 'aria-label' : lang.panelTitle }\r
},\r
\r
init : function()\r
editor.focus();\r
editor.fire( 'saveSnapshot' );\r
\r
- styles[ value ].apply( editor.document );\r
+ var style = styles[ value ],\r
+ elementPath = new CKEDITOR.dom.elementPath( editor.getSelection().getStartElement() );\r
\r
- editor.fire( 'saveSnapshot' );\r
+ style[ style.checkActive( elementPath ) ? 'remove' : 'apply' ]( editor.document );\r
+\r
+ // Save the undo snapshot after all changes are affected. (#4899)\r
+ setTimeout( function()\r
+ {\r
+ editor.fire( 'saveSnapshot' );\r
+ }, 0 );\r
},\r
\r
onRender : function()\r
* @type Object\r
* @default { element : 'p' }\r
* @example\r
- * config.format_p = { element : 'p', attributes : { class : 'normalPara' } };\r
+ * config.format_p = { element : 'p', attributes : { 'class' : 'normalPara' } };\r
*/\r
CKEDITOR.config.format_p = { element : 'p' };\r
\r
* @type Object\r
* @default { element : 'div' }\r
* @example\r
- * config.format_div = { element : 'div', attributes : { class : 'normalDiv' } };\r
+ * config.format_div = { element : 'div', attributes : { 'class' : 'normalDiv' } };\r
*/\r
CKEDITOR.config.format_div = { element : 'div' };\r
\r
* @type Object\r
* @default { element : 'pre' }\r
* @example\r
- * config.format_pre = { element : 'pre', attributes : { class : 'code' } };\r
+ * config.format_pre = { element : 'pre', attributes : { 'class' : 'code' } };\r
*/\r
CKEDITOR.config.format_pre = { element : 'pre' };\r
\r
* @type Object\r
* @default { element : 'address' }\r
* @example\r
- * config.format_address = { element : 'address', attributes : { class : 'styledAddress' } };\r
+ * config.format_address = { element : 'address', attributes : { 'class' : 'styledAddress' } };\r
*/\r
CKEDITOR.config.format_address = { element : 'address' };\r
\r
* @type Object\r
* @default { element : 'h1' }\r
* @example\r
- * config.format_h1 = { element : 'h1', attributes : { class : 'contentTitle1' } };\r
+ * config.format_h1 = { element : 'h1', attributes : { 'class' : 'contentTitle1' } };\r
*/\r
CKEDITOR.config.format_h1 = { element : 'h1' };\r
\r
* @type Object\r
* @default { element : 'h2' }\r
* @example\r
- * config.format_h2 = { element : 'h2', attributes : { class : 'contentTitle2' } };\r
+ * config.format_h2 = { element : 'h2', attributes : { 'class' : 'contentTitle2' } };\r
*/\r
CKEDITOR.config.format_h2 = { element : 'h2' };\r
\r
* @type Object\r
* @default { element : 'h3' }\r
* @example\r
- * config.format_h3 = { element : 'h3', attributes : { class : 'contentTitle3' } };\r
+ * config.format_h3 = { element : 'h3', attributes : { 'class' : 'contentTitle3' } };\r
*/\r
CKEDITOR.config.format_h3 = { element : 'h3' };\r
\r
* @type Object\r
* @default { element : 'h4' }\r
* @example\r
- * config.format_h4 = { element : 'h4', attributes : { class : 'contentTitle4' } };\r
+ * config.format_h4 = { element : 'h4', attributes : { 'class' : 'contentTitle4' } };\r
*/\r
CKEDITOR.config.format_h4 = { element : 'h4' };\r
\r
* @type Object\r
* @default { element : 'h5' }\r
* @example\r
- * config.format_h5 = { element : 'h5', attributes : { class : 'contentTitle5' } };\r
+ * config.format_h5 = { element : 'h5', attributes : { 'class' : 'contentTitle5' } };\r
*/\r
CKEDITOR.config.format_h5 = { element : 'h5' };\r
\r
* @type Object\r
* @default { element : 'h6' }\r
* @example\r
- * config.format_h6 = { element : 'h6', attributes : { class : 'contentTitle6' } };\r
+ * config.format_h6 = { element : 'h6', attributes : { 'class' : 'contentTitle6' } };\r
*/\r
CKEDITOR.config.format_h6 = { element : 'h6' };\r