Changeset 403
- Timestamp:
- 2007-07-02 11:12:21 (19 months ago)
- Location:
- FCKeditor/trunk/editor
- Files:
-
- 8 modified
-
dialog/fck_smiley.html (modified) (1 diff)
-
dialog/fck_specialchar.html (modified) (1 diff)
-
_source/classes/fckdomrange.js (modified) (3 diffs)
-
_source/classes/fckenterkey.js (modified) (1 diff)
-
_source/commandclasses/fck_othercommands.js (modified) (4 diffs)
-
_source/internals/fck_gecko.js (modified) (1 diff)
-
_source/internals/fck.js (modified) (5 diffs)
-
_source/internals/fckundo.js (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
FCKeditor/trunk/editor/dialog/fck_smiley.html
r398 r403 46 46 function InsertSmiley( url ) 47 47 { 48 oEditor.FCKUndo.SaveUndoStep() ;48 oEditor.FCKUndo.SaveUndoStep() ; 49 49 var oImg = oEditor.FCK.InsertElement( 'img' ) ; 50 50 oImg.src = url ; -
FCKeditor/trunk/editor/dialog/fck_specialchar.html
r398 r403 42 42 function insertChar(charValue) 43 43 { 44 oEditor.FCKUndo.SaveUndoStep() ;44 oEditor.FCKUndo.SaveUndoStep() ; 45 45 oEditor.FCK.InsertHtml( charValue || "" ) ; 46 46 window.parent.Cancel() ; -
FCKeditor/trunk/editor/_source/classes/fckdomrange.js
r396 r403 283 283 var bookmark = 284 284 { 285 "Start" : [this._Range.startOffset],286 "End" : [this._Range.endOffset]287 } ;285 "Start" : [ this._Range.startOffset ], 286 "End" : [ this._Range.endOffset ] 287 } ; 288 288 // Then, we record down the precise position of the container nodes 289 289 // by walking up the DOM tree and counting their childNode index 290 var curNode = this._Range.startContainer ;291 while (curNode && curNode != this.Window.document.documentElement)292 { 293 var curParent = curNode.parentNode ;294 for( var i=0;i<curParent.childNodes.length;i++)290 var curNode = this._Range.startContainer ; 291 while ( curNode && curNode != this.Window.document.documentElement ) 292 { 293 var curParent = curNode.parentNode ; 294 for( var i = 0 ; i < curParent.childNodes.length ; i++ ) 295 295 { 296 if ( curParent.childNodes.item(i) == curNode)297 { 298 bookmark.Start.unshift( i);299 break ;296 if ( curParent.childNodes.item( i ) == curNode ) 297 { 298 bookmark.Start.unshift( i ) ; 299 break ; 300 300 } 301 301 } … … 303 303 } 304 304 curNode = this._Range.endContainer; 305 while (curNode && curNode != this.Window.document.documentElement)305 while ( curNode && curNode != this.Window.document.documentElement ) 306 306 { 307 307 var curParent = curNode.parentNode; 308 for (var i=0;i<curParent.childNodes.length;i++)308 for ( var i = 0 ; i < curParent.childNodes.length ; i++ ) 309 309 { 310 if ( curParent.childNodes.item(i) == curNode)311 { 312 bookmark.End.unshift( i);310 if ( curParent.childNodes.item( i ) == curNode ) 311 { 312 bookmark.End.unshift( i ); 313 313 break; 314 314 } … … 322 322 { 323 323 // Reverse the childNode counting algorithm in CreateBookmark2() 324 var curStart = this.Window.document.documentElement ;325 var curEnd = this.Window.document.documentElement ;326 for (var i=0;i<bookmark.Start.length -1;i++)327 curStart = curStart.childNodes.item( bookmark.Start[i]);328 for (var i=0;i<bookmark.End.length -1;i++)329 curEnd = curEnd.childNodes.item( bookmark.End[i]);324 var curStart = this.Window.document.documentElement ; 325 var curEnd = this.Window.document.documentElement ; 326 for ( var i = 0 ; i < bookmark.Start.length - 1 ; i++ ) 327 curStart = curStart.childNodes.item( bookmark.Start[ i ] ) ; 328 for ( var i = 0 ; i < bookmark.End.length - 1 ; i++ ) 329 curEnd = curEnd.childNodes.item( bookmark.End[ i ] ) ; 330 330 331 331 // Generate the W3C Range object and update relevant data 332 this.Release( true);333 this._Range = new FCKW3CRange( this.Window.document);334 this._Range.setStart( curStart, bookmark.Start[bookmark.Start.length -1]);335 this._Range.setEnd( curEnd, bookmark.End[bookmark.End.length -1]);336 this._UpdateElementInfo() ;332 this.Release( true ) ; 333 this._Range = new FCKW3CRange( this.Window.document ) ; 334 this._Range.setStart( curStart, bookmark.Start[ bookmark.Start.length - 1 ] ) ; 335 this._Range.setEnd( curEnd, bookmark.End[ bookmark.End.length - 1 ] ) ; 336 this._UpdateElementInfo() ; 337 337 }, 338 338 -
FCKeditor/trunk/editor/_source/classes/fckenterkey.js
r398 r403 259 259 // Save an undo snapshot before doing anything 260 260 // This is to conform with the behavior seen in MS Word 261 FCKUndo.SaveUndoStep() ;261 FCKUndo.SaveUndoStep() ; 262 262 263 263 // The <Delete> has the same effect as the <Backspace>, so we have the same -
FCKeditor/trunk/editor/_source/commandclasses/fck_othercommands.js
r398 r403 264 264 { 265 265 // Take an undo snapshot before changing the document 266 FCKUndo.SaveUndoStep() ;266 FCKUndo.SaveUndoStep() ; 267 267 268 268 // var e = FCK.EditorDocument.createElement( 'CENTER' ) ; … … 293 293 { 294 294 // Take an undo snapshot before changing the document 295 FCKUndo.SaveUndoStep() ;295 FCKUndo.SaveUndoStep() ; 296 296 297 297 if ( FCKBrowserInfo.IsGecko ) … … 346 346 else 347 347 { 348 textarea.selectionStart = 0 ;348 textarea.selectionStart = 0 ; 349 349 textarea.selectionEnd = textarea.value.length ; 350 350 } … … 390 390 Execute : function() 391 391 { 392 FCKUndo.SaveUndoStep() ;392 FCKUndo.SaveUndoStep() ; 393 393 FCK.InsertElement( 'hr' ) ; 394 394 }, -
FCKeditor/trunk/editor/_source/internals/fck_gecko.js
r400 r403 131 131 { 132 132 // Save a snapshot for undo before actually paste the text 133 FCKUndo.SaveUndoStep() ;133 FCKUndo.SaveUndoStep() ; 134 134 135 135 if ( FCKConfig.ForcePasteAsPlainText ) -
FCKeditor/trunk/editor/_source/internals/fck.js
r401 r403 627 627 }, 628 628 629 _IsFunctionKey : function( keyCode)629 _IsFunctionKey : function( keyCode ) 630 630 { 631 631 // keys that are captured but do not change editor contents 632 if ( keyCode >= 16 && keyCode <= 20)632 if ( keyCode >= 16 && keyCode <= 20 ) 633 633 // shift, ctrl, alt, pause, capslock 634 return true ;635 if ( keyCode == 27 || (keyCode >= 33 && keyCode <= 40))634 return true ; 635 if ( keyCode == 27 || ( keyCode >= 33 && keyCode <= 40 ) ) 636 636 // esc, page up, page down, end, home, left, up, right, down 637 return true ;638 if ( keyCode == 45)637 return true ; 638 if ( keyCode == 45 ) 639 639 // insert, no effect on FCKeditor, yet 640 return true ;641 return false ;640 return true ; 641 return false ; 642 642 }, 643 643 … … 645 645 { 646 646 if (! evt) 647 evt = FCK.EditorWindow.event ;647 evt = FCK.EditorWindow.event ; 648 648 if ( FCK.EditorWindow ) 649 649 { … … 651 651 && !(evt.ctrlKey || evt.metaKey) // do not capture Ctrl hotkeys, as they have their snapshot capture logic 652 652 && !(evt.keyCode == 46) ) // do not capture Del, it has its own capture logic in fckenterkey.js 653 FCK._KeyDownUndo() ;654 } 655 return true ;653 FCK._KeyDownUndo() ; 654 } 655 return true ; 656 656 }, 657 657 … … 666 666 667 667 FCKUndo.TypesCount++ ; 668 FCKUndo.Changed = 1 ;668 FCKUndo.Changed = 1 ; 669 669 670 670 if ( FCKUndo.TypesCount > FCKUndo.MaxTypes ) … … 761 761 else if ( keystrokeValue == 'CustomCut' ) 762 762 { 763 FCKUndo.SaveUndoStep() ;764 return false ;763 FCKUndo.SaveUndoStep() ; 764 return false ; 765 765 } 766 766 } -
FCKeditor/trunk/editor/_source/internals/fckundo.js
r400 r403 29 29 FCKUndo.Changed = false ; // Is the document changed in respect to its initial image? 30 30 FCKUndo.MaxTypes = 25 ; 31 FCKUndo.Typing = false;31 CKUndo.Typing = false ; 32 32 33 33 FCKUndo._GetBookmark = function() 34 34 { 35 if ( FCKBrowserInfo.IsIE)35 if ( FCKBrowserInfo.IsIE ) 36 36 { 37 var selection = FCK.EditorDocument.selection ;38 if ( selection.type == 'Text')39 return selection.createRange().getBookmark() ;37 var selection = FCK.EditorDocument.selection ; 38 if ( selection.type == 'Text' ) 39 return selection.createRange().getBookmark() ; 40 40 else 41 return null ;41 return null ; 42 42 } 43 43 else 44 44 { 45 var range = new FCKDomRange( FCK.EditorWindow);46 range.MoveToSelection() ;47 return range.CreateBookmark2() ;45 var range = new FCKDomRange( FCK.EditorWindow ) ; 46 range.MoveToSelection() ; 47 return range.CreateBookmark2() ; 48 48 } 49 49 } 50 50 51 FCKUndo._SelectBookmark = function( bookmark)51 FCKUndo._SelectBookmark = function( bookmark ) 52 52 { 53 if ( ! bookmark)54 return ;55 if ( FCKBrowserInfo.IsIE)53 if ( ! bookmark ) 54 return ; 55 if ( FCKBrowserInfo.IsIE ) 56 56 { 57 var range = FCK.EditorDocument.selection.createRange() ;58 range.moveToBookmark( bookmark);59 range.select() ;57 var range = FCK.EditorDocument.selection.createRange() ; 58 range.moveToBookmark( bookmark ) ; 59 range.select() ; 60 60 } 61 61 else 62 62 { 63 var range = new FCKDomRange( FCK.EditorWindow);64 if ( bookmark instanceof Object)63 var range = new FCKDomRange( FCK.EditorWindow ) ; 64 if ( bookmark instanceof Object ) 65 65 { 66 range.MoveToBookmark2( bookmark);66 range.MoveToBookmark2( bookmark ) ; 67 67 try 68 68 { 69 69 // this does not always succeed, there are still some tricky cases where it fails 70 70 // e.g. add a special character at end of document, undo, redo -> error 71 range.Select() ;71 range.Select() ; 72 72 } 73 catch ( e)73 catch ( e ) 74 74 { 75 75 // if select restore fails, put the caret at the end of the document 76 range.MoveToPosition( FCK.EditorDocument.body, 4);77 range.Select() ;76 range.MoveToPosition( FCK.EditorDocument.body, 4 ) ; 77 range.Select() ; 78 78 } 79 79 } … … 88 88 // Assume the editor content is changed when SaveUndoStep() is called after the first time. 89 89 // This also enables the undo button in toolbar. 90 if ( FCKUndo.SavedData.length)91 FCKUndo.Changed = true ;90 if ( FCKUndo.SavedData.length ) 91 FCKUndo.Changed = true ; 92 92 93 93 // Get the HTML content. … … 101 101 return ; 102 102 // Save the selection and caret position in the first undo level for the first change. 103 else if ( FCKUndo.CurrentIndex == 0 && sHtml == FCKUndo.SavedData[0][0])103 else if ( FCKUndo.CurrentIndex == 0 && sHtml == FCKUndo.SavedData[0][0] ) 104 104 { 105 FCKUndo.SavedData[0][1] = FCKUndo._GetBookmark() ;106 return ;105 FCKUndo.SavedData[0][1] = FCKUndo._GetBookmark() ; 106 return ; 107 107 } 108 108 … … 167 167 168 168 // Update the editor contents with that step data. 169 if ( FCKBrowserInfo.IsIE)170 FCK.SetInnerHtml( oData[0]);169 if ( FCKBrowserInfo.IsIE ) 170 FCK.SetInnerHtml( oData[0] ) ; 171 171 else 172 172 FCK.EditorDocument.body.innerHTML = oData[0] ; 173 173 174 174 // Restore the selection 175 FCKUndo._SelectBookmark( oData[1]);175 FCKUndo._SelectBookmark( oData[1] ) ; 176 176 177 177 FCKUndo.TypesCount = 0 ; 178 FCKUndo.Changed = false ;178 FCKUndo.Changed = false ; 179 179 FCKUndo.Typing = false ; 180 180 }