Changeset 2276
- Timestamp:
- 2008-07-24 13:36:59 (6 months ago)
- Location:
- FCKeditor/trunk
- Files:
-
- 5 modified
-
editor/_source/commandclasses/fck_othercommands.js (modified) (1 diff)
-
editor/_source/internals/fckcommands.js (modified) (1 diff)
-
editor/_source/internals/fck_gecko.js (modified) (2 diffs)
-
fckconfig.js (modified) (1 diff)
-
_whatsnew.html (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
FCKeditor/trunk/editor/_source/commandclasses/fck_othercommands.js
r2236 r2276 614 614 } 615 615 } ; 616 617 // FCKRuleCommand618 var FCKNbsp = function()619 {620 this.Name = 'Non Breaking Space' ;621 }622 623 FCKNbsp.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
r2236 r2276 81 81 case 'PageBreak' : oCommand = new FCKPageBreakCommand() ; break ; 82 82 case 'Rule' : oCommand = new FCKRuleCommand() ; break ; 83 case 'Nbsp' : oCommand = new FCKNbsp() ; break ;84 83 85 84 case 'TextColor' : oCommand = new FCKTextColorCommand('ForeColor') ; break ; -
FCKeditor/trunk/editor/_source/internals/fck_gecko.js
r2236 r2276 360 360 FCKUndo.SaveUndoStep() ; 361 361 362 var fakeNodes = false ; 363 var prevCharNodeValue ; 364 if ( FCKBrowserInfo.IsGecko && /^(?: | )+$/.test( html ) ) 365 { 366 // Get the previous character's text node value, if any. 367 var selection = FCK.EditorWindow.getSelection() ; 368 var range = selection && selection.rangeCount > 0 && selection.getRangeAt( 0 ) ; 369 var startNode, prevCharNode ; 370 if ( range ) 371 { 372 if ( range.startContainer.nodeType == 1 ) 373 startNode = range.startContainer.childNodes[ range.startOffset ] ; 374 else if ( range.startContainer.nodeType == 3 ) 375 startNode = range.startContainer ; 376 } 377 if ( startNode ) 378 { 379 if ( range.startContainer.nodeType == 1 ) 380 { 381 var node = startNode.previousSibling ; 382 while ( node && node.nodeType == 3 && node.length < 1 ) 383 node = node.previousSibling ; 384 if ( node && node.nodeType == 3 ) 385 prevCharNode = node ; 386 } 387 else 388 prevCharNode = startNode ; 389 } 390 if ( prevCharNode ) 391 { 392 prevCharNodeValue = prevCharNode.nodeValue ; 393 if ( range.startContainer.nodeType == 3 ) 394 prevCharNodeValue = prevCharNodeValue.substr( 0, range.startOffset ) ; 395 } 396 362 if ( FCKBrowserInfo.IsGecko ) 363 { 397 364 // Using the following trick, present at the beginning and at 398 365 // the end of the HTML are preserved (#2248). 399 366 html = '<span id="__fakeFCKRemove1__" style="display:none;">fakeFCKRemove</span>' + html + '<span id="__fakeFCKRemove2__" style="display:none;">fakeFCKRemove</span>' ; 400 fakeNodes = true ;401 367 } 402 368 … … 404 370 doc.execCommand( 'inserthtml', false, html ) ; 405 371 406 if ( fakeNodes ) 407 { 408 // Retrieve the text node before the newly inserted text node. 409 // Note that this is a different node to the prevCharNode earlier. 410 var firstNode = doc.getElementById( '__fakeFCKRemove1__' ) ; 411 var textNode = firstNode.previousSibling ; 412 372 if ( FCKBrowserInfo.IsGecko ) 373 { 413 374 // Remove the fake nodes. 414 FCKDomTools.RemoveNode( firstNode) ;375 FCKDomTools.RemoveNode( doc.getElementById('__fakeFCKRemove1__') ) ; 415 376 FCKDomTools.RemoveNode( doc.getElementById('__fakeFCKRemove2__') ) ; 416 417 // Restore the previous character's text node value, if any.418 if ( prevCharNodeValue && textNode && textNode.nodeType == 3 )419 textNode.nodeValue = prevCharNodeValue ;420 377 } 421 378 -
FCKeditor/trunk/fckconfig.js
r2236 r2276 143 143 [ CTRL + 85 /*U*/, 'Underline' ], 144 144 [ CTRL + SHIFT + 83 /*S*/, 'Save' ], 145 [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ], 146 [ SHIFT + 32 /*SPACE*/, 'Nbsp' ] 145 [ CTRL + ALT + 13 /*ENTER*/, 'FitWindow' ] 147 146 ] ; 148 147 -
FCKeditor/trunk/_whatsnew.html
r2274 r2276 47 47 <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2252">#2252</a>] It's now possible to enable the 48 48 browsers default menu using the configuration file (FCKConfig.BrowserContextMenu option).</li> 49 <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2247">#2247</a>] The SHIFT+SPACE50 keystroke will now produce a &nbsp; character.</li>51 49 <li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2032">#2032</a>] Added HTML samples 52 50 for legacy HTML and Flash-embedded HTML code.</li>