+ var depressBeforeEvent;\r
+ function stateFromNamedCommand( command, editor )\r
+ {\r
+ // IE Bug: queryCommandEnabled('paste') fires also 'beforepaste(copy/cut)',\r
+ // guard to distinguish from the ordinary sources( either\r
+ // keyboard paste or execCommand ) (#4874).\r
+ CKEDITOR.env.ie && ( depressBeforeEvent = 1 );\r
+\r
+ var retval = editor.document.$.queryCommandEnabled( command ) ? CKEDITOR.TRISTATE_OFF : CKEDITOR.TRISTATE_DISABLED;\r
+ depressBeforeEvent = 0;\r
+ return retval;\r
+ }\r
+\r
+ var inReadOnly;\r
+ function setToolbarStates()\r
+ {\r
+ if ( this.mode != 'wysiwyg' )\r
+ return;\r
+\r
+ this.getCommand( 'cut' ).setState( inReadOnly ? CKEDITOR.TRISTATE_DISABLED : stateFromNamedCommand( 'Cut', this ) );\r
+ this.getCommand( 'copy' ).setState( stateFromNamedCommand( 'Copy', this ) );\r
+ var pasteState = inReadOnly ? CKEDITOR.TRISTATE_DISABLED :\r
+ CKEDITOR.env.webkit ? CKEDITOR.TRISTATE_OFF : stateFromNamedCommand( 'Paste', this );\r
+ this.fire( 'pasteState', pasteState );\r
+ }\r
+\r