Ticket #5084: 5084.patch
File 5084.patch, 16.3 KB (added by , 14 years ago) |
---|
-
_source/plugins/dialog/plugin.js
1705 1705 realX = abstractDialogCoords.x; 1706 1706 1707 1707 if ( abstractDialogCoords.y + margins[0] < magnetDistance ) 1708 realY = - 1708 realY = -margins[0]; 1709 1709 else if ( partName.search( 't' ) != -1 && abstractDialogCoords.y2 - abstractDialogCoords.y < minHeight + magnetDistance ) 1710 1710 realY = abstractDialogCoords.y2 - minHeight; 1711 1711 else … … 1744 1744 } 1745 1745 } 1746 1746 1747 // TODO : Simplify the resize logic, having just a single resize grip <div>. 1748 // var widthTest = /[lr]/, 1749 // heightTest = /[tb]/; 1750 // for ( var i = 0 ; i < parts.length ; i++ ) 1751 // { 1752 // var element = dialog.parts[ parts[i] + '_resize' ]; 1753 // if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE || 1754 // resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) || 1755 // resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) ) 1756 // { 1757 // element.hide(); 1758 // continue; 1759 // } 1760 // element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } ); 1761 // } 1747 var widthTest = /[lr]/, 1748 heightTest = /[tb]/; 1749 for ( var i = 0 ; i < parts.length ; i++ ) 1750 { 1751 var element = dialog.parts[ parts[i] + '_resize' ]; 1752 if ( resizable == CKEDITOR.DIALOG_RESIZE_NONE || 1753 resizable == CKEDITOR.DIALOG_RESIZE_HEIGHT && widthTest.test( parts[i] ) || 1754 resizable == CKEDITOR.DIALOG_RESIZE_WIDTH && heightTest.test( parts[i] ) ) 1755 { 1756 element.hide(); 1757 continue; 1758 } 1759 1760 element.on( 'mousedown', mouseDownHandler, dialog, { part : parts[i] } ); 1761 } 1762 1763 // The resizers need to have a bigger z-index 1764 dialog.on( 'show', function() 1765 { 1766 CKEDITOR.dialog._.currentZIndex += 10; 1767 for ( var i = 0 ; i < parts.length ; i++ ) 1768 { 1769 var element = dialog.parts[ parts[i] + '_resize' ]; 1770 element.isVisible() && ( element.setStyle( 'z-index', CKEDITOR.dialog._.currentZIndex ) ); 1771 } 1772 }); 1762 1773 } 1763 1774 1764 1775 var resizeCover; -
_source/skins/kama/dialog.css
12 12 /* Force Gecko to consider table as positioned */ 13 13 .cke_skin_kama table.cke_dialog.cke_browser_gecko 14 14 { 15 display: block;15 display: block; 16 16 } 17 17 18 18 .cke_skin_kama .cke_dialog_body … … 31 31 _position: static; 32 32 } 33 33 34 .cke_skin_kama .cke_dialog_tl ,35 .cke_skin_kama .cke_dialog_tr ,36 .cke_skin_kama .cke_dialog_tc ,37 .cke_skin_kama .cke_dialog_bl ,38 .cke_skin_kama .cke_dialog_br ,39 .cke_skin_kama .cke_dialog_bc ,40 .cke_skin_kama .cke_dialog_ml ,41 .cke_skin_kama .cke_dialog_mr 34 .cke_skin_kama .cke_dialog_tl_resizer, 35 .cke_skin_kama .cke_dialog_tr_resizer, 36 .cke_skin_kama .cke_dialog_tc_resizer, 37 .cke_skin_kama .cke_dialog_bl_resizer, 38 .cke_skin_kama .cke_dialog_br_resizer, 39 .cke_skin_kama .cke_dialog_bc_resizer, 40 .cke_skin_kama .cke_dialog_ml_resizer, 41 .cke_skin_kama .cke_dialog_mr_resizer 42 42 { 43 display:none; 43 position: absolute; 44 width: 2px; 45 height: 2px; 44 46 } 45 47 48 .cke_skin_kama .cke_dialog_tl_resizer 49 { 50 cursor: nw-resize; 51 top: 0px; 52 left: 0px; 53 } 54 .cke_skin_kama .cke_dialog_tr_resizer 55 { 56 cursor: ne-resize; 57 top: 0px; 58 right: 0px; 59 } 60 .cke_skin_kama .cke_dialog_tc_resizer 61 { 62 cursor: n-resize; 63 top: 0px; 64 left: 0px; 65 } 66 .cke_skin_kama .cke_dialog_bl_resizer 67 { 68 cursor: sw-resize; 69 bottom: 0px; 70 left: 0px; 71 } 72 .cke_skin_kama .cke_dialog_br_resizer 73 { 74 cursor: se-resize; 75 bottom: 0px; 76 right: 0px; 77 } 78 .cke_skin_kama .cke_dialog_bc_resizer 79 { 80 cursor: s-resize; 81 bottom: 0px; 82 left: 0px; 83 } 84 .cke_skin_kama .cke_dialog_ml_resizer 85 { 86 left: 0px; 87 } 88 .cke_skin_kama .cke_dialog_mr_resizer 89 { 90 right: 0px; 91 } 92 .cke_skin_kama .cke_dialog_ml_resizer, 93 .cke_skin_kama .cke_dialog_mr_resizer 94 { 95 cursor: w-resize; 96 bottom: 4px; 97 } 98 99 .cke_skin_kama .cke_dialog_tl, 100 .cke_skin_kama .cke_dialog_tr, 101 .cke_skin_kama .cke_dialog_tc, 102 .cke_skin_kama .cke_dialog_bl, 103 .cke_skin_kama .cke_dialog_br, 104 .cke_skin_kama .cke_dialog_bc, 105 .cke_skin_kama .cke_dialog_ml, 106 .cke_skin_kama .cke_dialog_mr 107 { 108 display: none; 109 } 110 46 111 .cke_skin_kama .cke_dialog_title 47 112 { 48 113 font-weight: bold; -
_source/skins/kama/skin.js
229 229 // Fix the size of the elements which have flexible lengths. 230 230 setTimeout( function() 231 231 { 232 var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ),233 body = innerDialog.getChild( 0);232 var parts = dialog.parts, 233 body = parts.dialog.getChild( [ 0, 0, 0, 0 ] ); 234 234 235 // tc 236 var el = innerDialog.getChild( 2 ); 237 el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 238 239 // bc 240 el = innerDialog.getChild( 7 ); 241 el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' ); 242 243 // ml 244 el = innerDialog.getChild( 4 ); 245 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 246 247 // mr 248 el = innerDialog.getChild( 5 ); 249 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 235 parts.t_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 236 parts.b_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 237 parts.l_resize.setStyle( 'height', ( body.$.offsetHeight - 6 ) + 'px' ); 238 parts.r_resize.setStyle( 'height', ( body.$.offsetHeight - 6 ) + 'px' ); 250 239 }, 251 240 100 ); 252 241 }); -
_source/skins/office2003/dialog.css
12 12 /* Force Gecko to consider table as positioned */ 13 13 .cke_skin_office2003 table.cke_dialog.cke_browser_gecko 14 14 { 15 display: block;15 display: block; 16 16 } 17 17 18 18 .cke_skin_office2003 .cke_dialog_body … … 29 29 _position: static; 30 30 } 31 31 32 .cke_skin_office2003 .cke_dialog_tl_resizer, 33 .cke_skin_office2003 .cke_dialog_tr_resizer, 34 .cke_skin_office2003 .cke_dialog_tc_resizer, 35 .cke_skin_office2003 .cke_dialog_bl_resizer, 36 .cke_skin_office2003 .cke_dialog_br_resizer, 37 .cke_skin_office2003 .cke_dialog_bc_resizer, 38 .cke_skin_office2003 .cke_dialog_ml_resizer, 39 .cke_skin_office2003 .cke_dialog_mr_resizer 40 { 41 position: absolute; 42 width: 2px; 43 height: 2px; 44 } 45 46 .cke_skin_office2003 .cke_dialog_tl_resizer 47 { 48 cursor: nw-resize; 49 top: 0px; 50 left: 16px; 51 } 52 .cke_skin_office2003 .cke_dialog_tr_resizer 53 { 54 cursor: ne-resize; 55 top: 0px; 56 right: 16px; 57 } 58 .cke_skin_office2003 .cke_dialog_tc_resizer 59 { 60 cursor: n-resize; 61 top: 0px; 62 left: 16px; 63 } 64 .cke_skin_office2003 .cke_dialog_bl_resizer 65 { 66 cursor: sw-resize; 67 bottom: 16px; 68 left: 16px; 69 } 70 .cke_skin_office2003 .cke_dialog_br_resizer 71 { 72 cursor: se-resize; 73 bottom: 16px; 74 right: 16px; 75 } 76 .cke_skin_office2003 .cke_dialog_bc_resizer 77 { 78 cursor: s-resize; 79 bottom: 16px; 80 left: 16px; 81 } 82 .cke_skin_office2003 .cke_dialog_ml_resizer 83 { 84 left: 16px; 85 } 86 .cke_skin_office2003 .cke_dialog_mr_resizer 87 { 88 right: 16px; 89 } 90 .cke_skin_office2003 .cke_dialog_ml_resizer, 91 .cke_skin_office2003 .cke_dialog_mr_resizer 92 { 93 cursor: w-resize; 94 bottom: 20px; 95 } 96 32 97 .cke_skin_office2003 .cke_dialog_tl, 33 98 .cke_skin_office2003 .cke_dialog_tr, 34 99 .cke_skin_office2003 .cke_dialog_tc, -
_source/skins/office2003/skin.js
46 46 height : height + 'px' 47 47 }); 48 48 49 if ( !CKEDITOR.env.ie )50 return;51 52 49 // Fix the size of the elements which have flexible lengths. 53 50 var fixSize = function() 54 51 { 55 var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ), 52 var parts = dialog.parts, 53 innerDialog = parts.dialog.getChild( [ 0, 0, 0 ] ), 56 54 body = innerDialog.getChild( 0 ); 57 55 58 // tc 59 var el = innerDialog.getChild( 2 ); 60 el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 56 if ( CKEDITOR.env.ie && CKEDITOR.env.quirks ) 57 { 58 // tc 59 var el = innerDialog.getChild( 2 ); 60 el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 61 61 62 // bc63 el = innerDialog.getChild( 7 );64 el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );62 // bc 63 el = innerDialog.getChild( 7 ); 64 el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' ); 65 65 66 // ml67 el = innerDialog.getChild( 4 );68 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );66 // ml 67 el = innerDialog.getChild( 4 ); 68 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 69 69 70 // mr 71 el = innerDialog.getChild( 5 ); 72 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 70 // mr 71 el = innerDialog.getChild( 5 ); 72 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 73 } 74 75 parts.t_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 76 parts.b_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 77 parts.l_resize.setStyle( 'height', ( body.$.offsetHeight ) + 'px' ); 78 parts.r_resize.setStyle( 'height', ( body.$.offsetHeight ) + 'px' ); 73 79 }; 74 80 setTimeout( fixSize, 100 ); 75 81 76 82 // Ensure size is correct for RTL mode. (#4003) 77 if ( evt.editor.lang.dir == 'rtl' )83 if ( CKEDITOR.env.ie && evt.editor.lang.dir == 'rtl' ) 78 84 setTimeout( fixSize, 1000 ); 79 85 }); 80 86 } -
_source/skins/v2/dialog.css
30 30 31 31 } 32 32 33 .cke_skin_v2 .cke_dialog_tl_resizer, 34 .cke_skin_v2 .cke_dialog_tr_resizer, 35 .cke_skin_v2 .cke_dialog_tc_resizer, 36 .cke_skin_v2 .cke_dialog_bl_resizer, 37 .cke_skin_v2 .cke_dialog_br_resizer, 38 .cke_skin_v2 .cke_dialog_bc_resizer, 39 .cke_skin_v2 .cke_dialog_ml_resizer, 40 .cke_skin_v2 .cke_dialog_mr_resizer 41 { 42 position: absolute; 43 width: 2px; 44 height: 2px; 45 } 46 47 .cke_skin_v2 .cke_dialog_tl_resizer 48 { 49 cursor: nw-resize; 50 top: 0px; 51 left: 16px; 52 } 53 .cke_skin_v2 .cke_dialog_tr_resizer 54 { 55 cursor: ne-resize; 56 top: 0px; 57 right: 16px; 58 } 59 .cke_skin_v2 .cke_dialog_tc_resizer 60 { 61 cursor: n-resize; 62 top: 0px; 63 left: 16px; 64 } 65 .cke_skin_v2 .cke_dialog_bl_resizer 66 { 67 cursor: sw-resize; 68 bottom: 16px; 69 left: 16px; 70 } 71 .cke_skin_v2 .cke_dialog_br_resizer 72 { 73 cursor: se-resize; 74 bottom: 16px; 75 right: 16px; 76 } 77 .cke_skin_v2 .cke_dialog_bc_resizer 78 { 79 cursor: s-resize; 80 bottom: 16px; 81 left: 16px; 82 } 83 .cke_skin_v2 .cke_dialog_ml_resizer 84 { 85 left: 16px; 86 } 87 .cke_skin_v2 .cke_dialog_mr_resizer 88 { 89 right: 16px; 90 } 91 .cke_skin_v2 .cke_dialog_ml_resizer, 92 .cke_skin_v2 .cke_dialog_mr_resizer 93 { 94 cursor: w-resize; 95 bottom: 20px; 96 } 97 33 98 .cke_skin_v2 .cke_dialog_tl, 34 99 .cke_skin_v2 .cke_dialog_tr, 35 100 .cke_skin_v2 .cke_dialog_tc, -
_source/skins/v2/skin.js
46 46 height : height + 'px' 47 47 }); 48 48 49 if ( !CKEDITOR.env.ie )50 return;51 52 49 // Fix the size of the elements which have flexible lengths. 53 50 setTimeout( function() 54 51 { 55 var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ), 52 var parts = dialog.parts, 53 innerDialog = parts.dialog.getChild( [ 0, 0, 0 ] ), 56 54 body = innerDialog.getChild( 0 ); 57 55 58 // tc 59 var el = innerDialog.getChild( 2 ); 60 el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 56 if ( CKEDITOR.env.ie && CKEDITOR.env.quirks ) 57 { 58 // tc 59 var el = innerDialog.getChild( 2 ); 60 el.setStyle( 'width', ( body.$.offsetWidth ) + 'px' ); 61 61 62 // bc63 el = innerDialog.getChild( 7 );64 el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' );62 // bc 63 el = innerDialog.getChild( 7 ); 64 el.setStyle( 'width', ( body.$.offsetWidth - 28 ) + 'px' ); 65 65 66 // ml67 el = innerDialog.getChild( 4 );68 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' );66 // ml 67 el = innerDialog.getChild( 4 ); 68 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 69 69 70 // mr 71 el = innerDialog.getChild( 5 ); 72 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 70 // mr 71 el = innerDialog.getChild( 5 ); 72 el.setStyle( 'height', ( body.$.offsetHeight - 31 - 14 ) + 'px' ); 73 } 74 75 parts.t_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 76 parts.b_resize.setStyle( 'width', ( body.$.offsetWidth - 2 ) + 'px' ); 77 parts.l_resize.setStyle( 'height', ( body.$.offsetHeight ) + 'px' ); 78 parts.r_resize.setStyle( 'height', ( body.$.offsetHeight ) + 'px' ); 73 79 }, 74 80 100 ); 75 81 }); -
_source/themes/default/theme.js
164 164 165 165 buildDialog : function( editor ) 166 166 { 167 var baseIdNumber = CKEDITOR.tools.getNextNumber(); 167 var baseIdNumber = CKEDITOR.tools.getNextNumber(), 168 rtl = editor.lang.dir == 'rtl', 169 sides = { 'r' : 'l', 'l' : 'r' }, 170 resizer = function( y, x ) 171 { 172 // The direction must be flipped in RTL dialog. 173 rtl && ( x = sides[x] || x ); 174 return '<div id="%' + y + x + '_resizer#" class="%' + y + x + '_resizer"></div>'; 175 }; 168 176 169 177 var element = CKEDITOR.dom.element.createFromHtml( [ 170 178 '<div class="cke_editor_' + editor.name.replace('.', '\\.') + '_dialog cke_skin_', editor.skinName, … … 181 189 '<a id="%close_button#" class="%close_button" href="javascript:void(0)" title="' + editor.lang.common.close+'" role="button"><span class="cke_label">X</span></a>' + 182 190 '<div id="%tabs#" class="%tabs" role="tablist"></div>' + 183 191 '<table class="%contents" role="presentation"><tr>' + 184 192 '<td id="%contents#" class="%contents" role="presentation"></td>' + 185 193 '</tr></table>' + 186 194 '<div id="%footer#" class="%footer" role="presentation"></div>' + 187 195 '</div>' + … … 193 201 '<div id="%bl#" class="%bl"></div>' + 194 202 '<div id="%bc#" class="%bc"></div>' + 195 203 '<div id="%br#" class="%br"></div>' + 204 resizer( 't', 'l' ) + 205 resizer( 't', 'c' ) + 206 resizer( 't', 'r' ) + 207 resizer( 'm', 'l' ) + 208 resizer( 'm', 'r' ) + 209 resizer( 'b', 'l' ) + 210 resizer( 'b', 'c' ) + 211 resizer( 'b', 'r' ) + 196 212 '</td></tr>' + 197 213 '</table>', 198 214 … … 212 228 title.unselectable(); 213 229 close.unselectable(); 214 230 231 var resizeParts = { 232 tl_resize : rtl ? 2 : 0, 233 t_resize : 1, 234 tr_resize : rtl ? 0 : 2, 235 l_resize : rtl ? 4 : 3, 236 r_resize : rtl ? 3 : 4, 237 bl_resize : rtl ? 7 : 5, 238 b_resize : 6, 239 br_resize : rtl ? 5 : 7 240 }, 241 holder = element.getChild( [ 0, 0, 0, 0 ] ); 242 for ( var i in resizeParts ) 243 resizeParts[ i ] = holder.getChild( resizeParts[ i ] + 9 ); 215 244 216 245 return { 217 246 element : element, 218 247 parts : 219 {220 dialog 221 title 222 close 223 tabs 248 CKEDITOR.tools.extend( { 249 dialog : element.getChild( 0 ), 250 title : title, 251 close : close, 252 tabs : body.getChild( 2 ), 224 253 contents : body.getChild( [ 3, 0, 0, 0 ] ), 225 footer 226 } 254 footer : body.getChild( 4 ) 255 }, resizeParts ) 227 256 }; 228 257 }, 229 258