JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.0.1
[ckeditor.git] / _source / plugins / dialog / plugin.js
index c052120..b41cd10 100644 (file)
@@ -272,6 +272,10 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
                                        break;\r
                        }\r
                        focusList[ currentIndex ].focus();\r
+\r
+                       // Select whole field content.\r
+                       if ( focusList[ currentIndex ].type == 'text' )\r
+                               focusList[ currentIndex ].select();\r
                }\r
 \r
                function focusKeydownHandler( evt )\r
@@ -623,6 +627,10 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
 \r
                                CKEDITOR.document.on( 'keydown', accessKeyDownHandler );\r
                                CKEDITOR.document.on( 'keyup', accessKeyUpHandler );\r
+\r
+                               // Prevent some keys from bubbling up. (#4269)\r
+                               for ( var event in { keyup :1, keydown :1, keypress :1 } )\r
+                                       CKEDITOR.document.on( event, preventKeyBubbling );\r
                        }\r
                        else\r
                        {\r
@@ -749,6 +757,11 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
                                // Remove access key handlers.\r
                                CKEDITOR.document.removeListener( 'keydown', accessKeyDownHandler );\r
                                CKEDITOR.document.removeListener( 'keyup', accessKeyUpHandler );\r
+                               CKEDITOR.document.removeListener( 'keypress', accessKeyUpHandler );\r
+\r
+                               // Remove bubbling-prevention handler. (#4269)\r
+                               for ( var event in { keyup :1, keydown :1, keypress :1 } )\r
+                                       CKEDITOR.document.removeListener( event, preventKeyBubbling );\r
 \r
                                var editor = this._.editor;\r
                                editor.focus();\r
@@ -1426,6 +1439,9 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
                        magnetDistance = editor.config.dialog_magnetDistance,\r
                        margins = skinData[ editor.skinName ].margins || [ 0, 0, 0, 0 ];\r
 \r
+               if ( typeof magnetDistance == 'undefined' )\r
+                       magnetDistance = 20;\r
+\r
                function mouseMoveHandler( evt )\r
                {\r
                        var dialogSize = dialog.getSize(),\r
@@ -1649,7 +1665,7 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
                                        '<div style="position: ', ( CKEDITOR.env.ie6Compat ? 'absolute' : 'fixed' ),\r
                                        '; z-index: ', editor.config.baseFloatZIndex,\r
                                        '; top: 0px; left: 0px; ',\r
-                                       'background-color: ', editor.config.dialog_backgroundCoverColor,\r
+                                       'background-color: ', editor.config.dialog_backgroundCoverColor || 'white',\r
                                        '" id="cke_dialog_background_cover">'\r
                                ];\r
 \r
@@ -1741,7 +1757,10 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
                                }, 0 );\r
                        scrollFunc();\r
                }\r
-               element.setOpacity( editor.config.dialog_backgroundCoverOpacity );\r
+\r
+               var opacity = editor.config.dialog_backgroundCoverOpacity;\r
+               element.setOpacity( typeof opacity != 'undefined' ? opacity : 0.5 );\r
+\r
                element.appendTo( CKEDITOR.document.getBody() );\r
        };\r
 \r
@@ -1836,6 +1855,14 @@ CKEDITOR.DIALOG_RESIZE_BOTH = 3;
        {\r
        };\r
 \r
+       // ESC, ENTER\r
+       var preventKeyBubblingKeys = { 27 :1, 13 :1 };\r
+       var preventKeyBubbling = function( e )\r
+       {\r
+               if ( e.data.getKeystroke() in preventKeyBubblingKeys )\r
+                       e.data.stopPropagation();\r
+       };\r
+\r
        (function()\r
        {\r
                CKEDITOR.ui.dialog =\r
@@ -2714,29 +2741,29 @@ CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
 /**\r
  * The color of the dialog background cover. It should be a valid CSS color\r
  * string.\r
+ * @name CKEDITOR.config.dialog_backgroundCoverColor\r
  * @type String\r
- * @default white\r
+ * @default 'white'\r
  * @example\r
  * config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)';\r
  */\r
-CKEDITOR.config.dialog_backgroundCoverColor = 'white';\r
 \r
 /**\r
  * The opacity of the dialog background cover. It should be a number within the\r
  * range [0.0, 1.0].\r
+ * @name CKEDITOR.config.dialog_backgroundCoverOpacity\r
  * @type Number\r
  * @default 0.5\r
  * @example\r
  * config.dialog_backgroundCoverOpacity = 0.7;\r
  */\r
-CKEDITOR.config.dialog_backgroundCoverOpacity = 0.5;\r
 \r
 /**\r
  * The distance of magnetic borders used in moving and resizing dialogs,\r
  * measured in pixels.\r
+ * @name CKEDITOR.config.dialog_magnetDistance\r
  * @type Number\r
  * @default 20\r
  * @example\r
  * config.dialog_magnetDistance = 30;\r
  */\r
-CKEDITOR.config.dialog_magnetDistance = 20;\r