Ticket #2606: ticket2606.2.patch
File ticket2606.2.patch, 2.3 KB (added by , 16 years ago) |
---|
-
editor/_source/classes/fckenterkey.js
1 ?/*1 /* 2 2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 3 3 * Copyright (C) 2003-2008 Frederico Caldeira Knabben 4 4 * … … 172 172 return false ; 173 173 } 174 174 175 //fix for webkit-based browsers (http://dev.fckeditor.net/ticket/2606) - deletes button 176 if ( FCKBrowserInfo.IsSafari ) { 177 var prevNode = FCKDomTools.GetPreviousSourceNode( oRange.StartNode, true ) ; 178 179 if ( prevNode && this._IsButton( prevNode ) && 180 ( oRange.StartNode.nodeType != 3 || ( this.Window.getSelection().focusNode != oRange.StartNode || this.Window.getSelection().focusOffset == 0 ) ) 181 ) 182 { 183 prevNode.parentNode.removeChild( prevNode ) ; 184 return true ; 185 } 186 } 187 175 188 // On IE, it is better for us handle the deletion if the caret is preceeded 176 189 // by a <br> (#1383). 177 190 if ( FCKBrowserInfo.IsIE ) … … 360 373 return true ; 361 374 } 362 375 376 //fix for webkit-based browsers (http://dev.fckeditor.net/ticket/2606) - deletes button 377 if ( FCKBrowserInfo.IsSafari ) { 378 var nextNode = FCKDomTools.GetNextSourceNode( oRange.StartNode, true ) ; 379 if ( nextNode && this._IsButton( nextNode ) && ( oRange.StartNode.nodeType != 3 || this.Window.getSelection().focusOffset == oRange.StartNode.length )) 380 { 381 nextNode.parentNode.removeChild( nextNode ) ; 382 return true ; 383 } 384 } 385 363 386 // There is just one special case for collapsed selections at the end of a block. 364 387 if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGeckoLike ) ) 365 388 { … … 711 734 range.Select() ; 712 735 range.Release() ; 713 736 } 737 738 // Used by doDelete and doBackspace in webkit-based browsers to delete a button, ticket #2606 739 FCKEnterKey.prototype._IsButton = function ( element ) 740 { 741 return ( element && element.tagName && 742 ((element.tagName.toLowerCase() == 'input' && 743 (element.type.toLowerCase() == 'button' || element.type.toLowerCase() == 'submit' || element.type.toLowerCase() == 'reset') 744 ) || element.tagName.toLowerCase() == "button") 745 ); 746 } 747 No newline at end of file