- var viewSize = CKEDITOR.document.getWindow().getViewPaneSize(),\r
- dialogSize = this.getSize();\r
+ var el = this.parts.dialog;\r
+ var dialogSize = this.getSize();\r
+ var win = CKEDITOR.document.getWindow(),\r
+ viewSize = win.getViewPaneSize();\r
+\r
+ var posX = ( viewSize.width - dialogSize.width ) / 2,\r
+ posY = ( viewSize.height - dialogSize.height ) / 2;\r
+\r
+ // Switch to absolute position when viewport is smaller than dialog size.\r
+ if ( !CKEDITOR.env.ie6Compat )\r
+ {\r
+ if ( dialogSize.height + ( posY > 0 ? posY : 0 ) > viewSize.height ||\r
+ dialogSize.width + ( posX > 0 ? posX : 0 ) > viewSize.width )\r
+ el.setStyle( 'position', 'absolute' );\r
+ else\r
+ el.setStyle( 'position', 'fixed' );\r
+ }\r