Changeset 2279 for FCKeditor/trunk

Show
Ignore:
Timestamp:
2008-07-25 07:31:08 (4 months ago)
Author:
fredck
Message:

Fixed #2247 : The SHIFT+SPACE keystroke will now produce a   character.

Location:
FCKeditor/trunk
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • FCKeditor/trunk/editor/_source/classes/fckdocumentfragment_gecko.js

    r1565 r2279  
    4141        }, 
    4242 
     43        AppendHtml : function( html ) 
     44        { 
     45                var eTmpDiv = this.RootNode.ownerDocument.createElement( 'div' ) ; 
     46                eTmpDiv.innerHTML = html ; 
     47                FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ; 
     48        }, 
     49 
    4350        InsertAfterNode : function( existingNode ) 
    4451        { 
  • FCKeditor/trunk/editor/_source/commandclasses/fck_othercommands.js

    r2276 r2279  
    614614        } 
    615615} ; 
     616 
     617// FCKRuleCommand 
     618var FCKNbsp = function() 
     619{ 
     620        this.Name = 'Non Breaking Space' ; 
     621} 
     622 
     623FCKNbsp.prototype = 
     624{ 
     625        Execute : function() 
     626        { 
     627                FCK.InsertHtml( ' ' ) ; 
     628        }, 
     629 
     630        GetState : function() 
     631        { 
     632                return ( FCK.EditMode != FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_DISABLED : FCK_TRISTATE_OFF ) ; 
     633        } 
     634} ; 
  • FCKeditor/trunk/editor/_source/internals/fckcommands.js

    r2276 r2279  
    8181                case 'PageBreak'        : oCommand = new FCKPageBreakCommand() ; break ; 
    8282                case 'Rule'                     : oCommand = new FCKRuleCommand() ; break ; 
     83                case 'Nbsp'                     : oCommand = new FCKNbsp() ; break ; 
    8384 
    8485                case 'TextColor'        : oCommand = new FCKTextColorCommand('ForeColor') ; break ; 
  • FCKeditor/trunk/editor/_source/internals/fck_gecko.js

    r2276 r2279  
    350350FCK.InsertHtml = function( html ) 
    351351{ 
    352         var doc = FCK.EditorDocument ; 
     352        var doc = FCK.EditorDocument, 
     353                range; 
    353354 
    354355        html = FCKConfig.ProtectedSource.Protect( html ) ; 
     
    362363        if ( FCKBrowserInfo.IsGecko ) 
    363364        { 
    364                 // Using the following trick,   present at the beginning and at 
    365                 // the end of the HTML are preserved (#2248). 
    366                 html = '<span id="__fakeFCKRemove1__" style="display:none;">fakeFCKRemove</span>' + html + '<span id="__fakeFCKRemove2__" style="display:none;">fakeFCKRemove</span>' ; 
    367         } 
    368  
    369         // Insert the HTML code. 
    370         doc.execCommand( 'inserthtml', false, html ) ; 
    371  
    372         if ( FCKBrowserInfo.IsGecko ) 
    373         { 
    374                 // Remove the fake nodes. 
    375                 FCKDomTools.RemoveNode( doc.getElementById('__fakeFCKRemove1__') ) ; 
    376                 FCKDomTools.RemoveNode( doc.getElementById('__fakeFCKRemove2__') ) ; 
    377         } 
     365                html = html.replace( /&nbsp;$/, '$&<span _fcktemp="1"/>' ) ; 
     366 
     367                var docFrag = new FCKDocumentFragment( this.EditorDocument ) ; 
     368                docFrag.AppendHtml( html ) ; 
     369 
     370                var lastNode = docFrag.RootNode.lastChild ; 
     371 
     372                range = new FCKDomRange( this.EditorWindow ) ; 
     373                range.MoveToSelection() ; 
     374                range.InsertNode( docFrag.RootNode ) ; 
     375 
     376                range.MoveToPosition( lastNode, 4 ) ; 
     377        } 
     378        else 
     379                doc.execCommand( 'inserthtml', false, html ) ; 
    378380 
    379381        this.Focus() ; 
    380382 
    381383        // Save the caret position before calling document processor. 
    382         var range = new FCKDomRange( this.EditorWindow ) ; 
    383         range.MoveToSelection() ; 
     384        if ( !range ) 
     385        { 
     386                range = new FCKDomRange( this.EditorWindow ) ; 
     387                range.MoveToSelection() ; 
     388        } 
    384389        var bookmark = range.CreateBookmark() ; 
    385390 
  • FCKeditor/trunk/fckconfig.js

    r2276 r2279  
    143143        [ CTRL + 85 /*U*/, 'Underline' ], 
    144144        [ CTRL + SHIFT + 83 /*S*/, 'Save' ], 
    145         [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ] 
     145        [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ], 
     146        [ SHIFT + 32 /*SPACE*/, 'Nbsp' ] 
    146147] ; 
    147148 
  • FCKeditor/trunk/_whatsnew.html

    r2276 r2279  
    4949                <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2032">#2032</a>] Added HTML samples 
    5050                        for legacy HTML and Flash-embedded HTML code.</li> 
     51                <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2247">#2247</a>] The SHIFT+SPACE 
     52                        keystroke will now produce a &amp;nbsp; character.</li> 
    5153        </ul> 
    5254        <p>