X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fbutton%2Fplugin.js;h=c0c8208b5c2a1c80cc7e2a46faec4a7eefd4c56c;hb=614511639979907ceb0da3614122a4d8eb963ad4;hp=b211a28c08c792ebd513f3ca0f6926b3d4d0b92d;hpb=059b4c2fef02528bf1af189f7996e80652faddfb;p=ckeditor.git
diff --git a/_source/plugins/button/plugin.js b/_source/plugins/button/plugin.js
index b211a28..c0c8208 100644
--- a/_source/plugins/button/plugin.js
+++ b/_source/plugins/button/plugin.js
@@ -69,9 +69,13 @@ CKEDITOR.ui.button.prototype =
*/
render : function( editor, output )
{
- var env = CKEDITOR.env;
+ var env = CKEDITOR.env,
+ id = this._.id = CKEDITOR.tools.getNextId(),
+ classes = '',
+ command = this.command, // Get the command name.
+ clickFn,
+ index;
- var id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber();
this._.editor = editor;
var instance =
@@ -90,20 +94,26 @@ CKEDITOR.ui.button.prototype =
}
};
- var clickFn = CKEDITOR.tools.addFunction( instance.execute, instance );
+ instance.clickFn = clickFn = CKEDITOR.tools.addFunction( instance.execute, instance );
- var index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
-
- var classes = '';
-
- // Get the command name.
- var command = this.command;
+ instance.index = index = CKEDITOR.ui.button._.instances.push( instance ) - 1;
+ // Indicate a mode sensitive button.
if ( this.modes )
{
+ var modeStates = {};
+ editor.on( 'beforeModeUnload', function()
+ {
+ modeStates[ editor.mode ] = this._.state;
+ }, this );
+
editor.on( 'mode', function()
{
- this.setState( this.modes[ editor.mode ] ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
+ var mode = editor.mode;
+ // Restore saved button state.
+ this.setState( this.modes[ mode ] ?
+ modeStates[ mode ] != undefined ? modeStates[ mode ] :
+ CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED );
}, this);
}
else if ( command )
@@ -135,7 +145,7 @@ CKEDITOR.ui.button.prototype =
'',
'= 10900 && !env.hc ? '' : '" href="javascript:void(\''+ ( this.title || '' ).replace( "'"+ '' )+ '\')"',
+ env.gecko && env.version >= 10900 && !env.hc ? '' : '" href="javascript:void(\''+ ( this.title || '' ).replace( "'", '' )+ '\')"',
' title="', this.title, '"' +
' tabindex="-1"' +
' hidefocus="true"' +
@@ -173,13 +183,16 @@ CKEDITOR.ui.button.prototype =
}
output.push(
- '>' +
+ '> ' +
'', this.label, '' );
if ( this.hasArrow )
{
output.push(
- '' );
+ ''
+ // BLACK DOWN-POINTING TRIANGLE
+ + ( CKEDITOR.env.hc ? '▼' : ' ' )
+ + '' );
}
output.push(
@@ -268,3 +281,8 @@ CKEDITOR.ui.prototype.addButton = function( name, definition )
{
this.add( name, CKEDITOR.UI_BUTTON, definition );
};
+
+CKEDITOR.on( 'reset', function()
+ {
+ CKEDITOR.ui.button._.instances = [];
+ });