Index: wysiwyg.init.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/wysiwyg.init.js,v retrieving revision 1.3 diff -u -p -r1.3 wysiwyg.init.js --- wysiwyg.init.js 1 Feb 2009 09:20:48 -0000 1.3 +++ wysiwyg.init.js 14 Feb 2010 01:43:05 -0000 @@ -1,8 +1,22 @@ // $Id: wysiwyg.init.js,v 1.3 2009/02/01 09:20:48 sun Exp $ +jQuery.support = jQuery.support || {}; // D6- only. + Drupal.wysiwyg = Drupal.wysiwyg || { 'instances': {} }; Drupal.wysiwyg.editor = Drupal.wysiwyg.editor || { 'init': {}, 'attach': {}, 'detach': {}, 'instance': {} }; Drupal.wysiwyg.plugins = Drupal.wysiwyg.plugins || {}; +(function ($) { + // Determine support for queryCommandEnabled(). + // An exception should be thrown for nonexistent commands. + // Safari and Chrome (WebKit based) return -1 instead. + try { + document.queryCommandEnabled('__wysiwygTestCommand'); + $.support.queryCommandEnabled = false; + } + catch (er) { + $.support.queryCommandEnabled = true; + } +})(jQuery); Index: editors/js/fckeditor-2.6.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/wysiwyg/editors/js/fckeditor-2.6.js,v retrieving revision 1.16.2.3 diff -u -p -r1.16.2.3 fckeditor-2.6.js --- editors/js/fckeditor-2.6.js 13 Feb 2010 23:58:41 -0000 1.16.2.3 +++ editors/js/fckeditor-2.6.js 14 Feb 2010 01:48:44 -0000 @@ -123,6 +123,10 @@ Drupal.wysiwyg.editor.instance.fckeditor return FCK_TRISTATE_DISABLED; } var state = instance.FCK.GetNamedCommandState(this.Name); + // FCKeditor sets the wrong state in WebKit browsers. + if (!$.support.queryCommandEnabled && state == FCK_TRISTATE_DISABLED) { + state = FCK_TRISTATE_OFF; + } if (state == FCK_TRISTATE_OFF && instance.FCK.EditMode == FCK_EDITMODE_WYSIWYG) { if (typeof Drupal.wysiwyg.plugins[plugin].isNode == 'function') { var node = instance.FCKSelection.GetSelectedElement();