Ticket #4552: 4552_5.patch
File 4552_5.patch, 3.1 KB (added by , 14 years ago) |
---|
-
_source/core/tools.js
189 189 return ( !!object && object instanceof Array ); 190 190 }, 191 191 192 isEmpty : function ( object ) 193 { 194 for ( var i in object ) 195 { 196 if ( object.hasOwnProperty( i ) ) 197 return false; 198 } 199 return true; 200 }, 192 201 /** 193 202 * Transforms a CSS property name to its relative DOM style name. 194 203 * @param {String} cssName The CSS property name. -
_source/plugins/floatpanel/plugin.js
55 55 56 56 this.element = element; 57 57 58 // Register panels to editor for easy destroying ( #4241 ).59 editor.panels ? editor.panels.push( element ) : editor.panels = [ element ];60 61 62 58 this._ = 63 59 { 64 60 // The panel that will be floating. … … 329 325 } 330 326 } 331 327 }); 328 329 CKEDITOR.on( 'instanceDestroyed', function() 330 { 331 var isLastInstance = CKEDITOR.tools.isEmpty( CKEDITOR.instances ); 332 333 for( var i in panels ) 334 { 335 var panel = panels[ i ]; 336 // Safe to destroy it since there're no more instances.(#4241) 337 if( isLastInstance ) 338 panel.destroy(); 339 // Panel might be used by other instances, just hide them.(#4552) 340 else 341 panel.element.hide(); 342 } 343 // Remove the registration. 344 isLastInstance && ( panels = {} ); 345 346 } ); 332 347 })(); -
_source/plugins/panel/plugin.js
230 230 block.show(); 231 231 232 232 return block; 233 }, 234 235 destroy : function() 236 { 237 this.element && this.element.remove(); 233 238 } 234 239 }; 235 240 -
_source/themes/default/theme.js
155 155 156 156 destroy : function( editor ) 157 157 { 158 var container = editor.container, 159 panels = editor.panels; 158 var container = editor.container; 160 159 161 160 /* 162 161 * IE BUG: Removing the editor DOM elements while the selection is inside … … 183 182 if ( container ) 184 183 container.remove(); 185 184 186 for( var i = 0 ; panels && i < panels.length ; i++ )187 panels[ i ].remove();188 189 185 if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) 190 186 { 191 187 editor.element.show(); -
_source/core/editor.js
467 467 this.theme.destroy( this ); 468 468 this.fire( 'destroy' ); 469 469 CKEDITOR.remove( this ); 470 CKEDITOR.fire( 'instanceDestroyed', null, this ); 470 471 }, 471 472 472 473 /**