]> git.immae.eu Git - perso/Immae/Projets/packagist/ludivine-ckeditor-component.git/blobdiff - sources/plugins/floatpanel/plugin.js
Update to 4.7.3
[perso/Immae/Projets/packagist/ludivine-ckeditor-component.git] / sources / plugins / floatpanel / plugin.js
index 1a851f97122e7002f0196f02d69c8b3793a5fb8e..c4806960c98944704d113b67731509ebe4af565b 100644 (file)
@@ -61,7 +61,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                iframe = element.getFirst(),\r
                                that = this;\r
 \r
-                       // Disable native browser menu. (#4825)\r
+                       // Disable native browser menu. (http://dev.ckeditor.com/ticket/4825)\r
                        element.disableContextMenu();\r
 \r
                        this.element = element;\r
@@ -83,7 +83,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                        editor.on( 'resize', hide );\r
 \r
                        // When resize of the window is triggered floatpanel should be repositioned according to new dimensions.\r
-                       // #11724. Fixes issue with undesired panel hiding on Android and iOS.\r
+                       // http://dev.ckeditor.com/ticket/11724. Fixes issue with undesired panel hiding on Android and iOS.\r
                        doc.getWindow().on( 'resize', function() {\r
                                this.reposition();\r
                        }, this );\r
@@ -155,7 +155,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                var element = this.element,\r
                                        iframe = this._.iframe,\r
-                                       // Edge prefers iframe's window to the iframe, just like the rest of the browsers (#13143).\r
+                                       // Edge prefers iframe's window to the iframe, just like the rest of the browsers (http://dev.ckeditor.com/ticket/13143).\r
                                        focused = CKEDITOR.env.ie && !CKEDITOR.env.edge ? iframe : new CKEDITOR.dom.window( iframe.$.contentWindow ),\r
                                        doc = element.getDocument(),\r
                                        positionedAncestor = this._.parentElement.getPositionedAncestor(),\r
@@ -165,7 +165,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                        left = position.x + ( offsetX || 0 ) - positionedAncestorPosition.x,\r
                                        top = position.y + ( offsetY || 0 ) - positionedAncestorPosition.y;\r
 \r
-                               // Floating panels are off by (-1px, 0px) in RTL mode. (#3438)\r
+                               // Floating panels are off by (-1px, 0px) in RTL mode. (http://dev.ckeditor.com/ticket/3438)\r
                                if ( rtl && ( corner == 1 || corner == 4 ) )\r
                                        left += offsetParent.$.offsetWidth;\r
                                else if ( !rtl && ( corner == 2 || corner == 3 ) )\r
@@ -198,7 +198,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                        // With addEventListener compatible browsers, we must\r
                                        // useCapture when registering the focus/blur events to\r
-                                       // guarantee they will be firing in all situations. (#3068, #3222 )\r
+                                       // guarantee they will be firing in all situations. (http://dev.ckeditor.com/ticket/3068, http://dev.ckeditor.com/ticket/3222 )\r
                                        CKEDITOR.event.useCapture = true;\r
 \r
                                        focused.on( 'blur', function( ev ) {\r
@@ -211,7 +211,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                if ( this.visible && !this._.activeChild ) {\r
                                                        // [iOS] Allow hide to be prevented if touch is bound\r
-                                                       // to any parent of the iframe blur happens before touch (#10714).\r
+                                                       // to any parent of the iframe blur happens before touch (http://dev.ckeditor.com/ticket/10714).\r
                                                        if ( CKEDITOR.env.iOS ) {\r
                                                                if ( !this._.hideTimeout )\r
                                                                        this._.hideTimeout = CKEDITOR.tools.setTimeout( doHide, 0, this );\r
@@ -235,7 +235,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                        }, this );\r
 \r
                                        // [iOS] if touch is bound to any parent of the iframe blur\r
-                                       // happens twice before touchstart and before touchend (#10714).\r
+                                       // happens twice before touchstart and before touchend (http://dev.ckeditor.com/ticket/10714).\r
                                        if ( CKEDITOR.env.iOS ) {\r
                                                // Prevent false hiding on blur.\r
                                                // We don't need to return focus here because touchend will fire anyway.\r
@@ -266,7 +266,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                var target = element;\r
 \r
                                                // Reset panel width as the new content can be narrower\r
-                                               // than the old one. (#9355)\r
+                                               // than the old one. (http://dev.ckeditor.com/ticket/9355)\r
                                                target.removeStyle( 'width' );\r
 \r
                                                if ( block.autoSize ) {\r
@@ -275,7 +275,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                        // Account for extra height needed due to IE quirks box model bug:\r
                                                        // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
-                                                       // (#3426)\r
+                                                       // (http://dev.ckeditor.com/ticket/3426)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && width > 0 )\r
                                                                width += ( target.$.offsetWidth || 0 ) - ( target.$.clientWidth || 0 ) + 3;\r
 \r
@@ -288,7 +288,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                        // Account for extra height needed due to IE quirks box model bug:\r
                                                        // http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug\r
-                                                       // (#3426)\r
+                                                       // (http://dev.ckeditor.com/ticket/3426)\r
                                                        if ( CKEDITOR.env.ie && CKEDITOR.env.quirks && height > 0 )\r
                                                                height += ( target.$.offsetHeight || 0 ) - ( target.$.clientHeight || 0 ) + 3;\r
 \r
@@ -364,7 +364,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                                                // If IE is in RTL, we have troubles with absolute\r
                                                // position and horizontal scrolls. Here we have a\r
-                                               // series of hacks to workaround it. (#6146)\r
+                                               // series of hacks to workaround it. (http://dev.ckeditor.com/ticket/6146)\r
                                                if ( CKEDITOR.env.ie ) {\r
                                                        var offsetParent = new CKEDITOR.dom.element( element.$.offsetParent ),\r
                                                                scrollParent = offsetParent;\r
@@ -383,7 +383,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                }\r
 \r
                                                // Trigger the onHide event of the previously active panel to prevent\r
-                                               // incorrect styles from being applied (#6170)\r
+                                               // incorrect styles from being applied (http://dev.ckeditor.com/ticket/6170)\r
                                                var innerElement = element.getFirst(),\r
                                                        activePanel;\r
                                                if ( ( activePanel = innerElement.getCustomData( 'activePanel' ) ) )\r
@@ -410,12 +410,22 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                                // Focus the block now.\r
                                                block.element.focus();\r
 \r
-                                               // #10623, #10951 - restore the viewport's scroll position after focusing list element.\r
+                                               // http://dev.ckeditor.com/ticket/10623, http://dev.ckeditor.com/ticket/10951 - restore the viewport's scroll position after focusing list element.\r
                                                if ( CKEDITOR.env.webkit )\r
                                                        CKEDITOR.document.getBody().$.scrollTop = scrollTop;\r
 \r
                                                // We need this get fired manually because of unfired focus() function.\r
                                                this.allowBlur( true );\r
+\r
+                                               // Ensure that the first item is focused (http://dev.ckeditor.com/ticket/16804).\r
+                                               if ( CKEDITOR.env.ie ) {\r
+                                                       CKEDITOR.tools.setTimeout( function() {\r
+                                                               block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+                                                       }, 0 );\r
+                                               } else {\r
+                                                       block.markFirstDisplayed ? block.markFirstDisplayed() : block._.markFirstDisplayed();\r
+                                               }\r
+\r
                                                this._.editor.fire( 'panelShow', this );\r
                                        }, 0, this );\r
                                }, CKEDITOR.env.air ? 200 : 0, this );\r
@@ -473,13 +483,13 @@ CKEDITOR.plugins.add( 'floatpanel', {
                        hide: function( returnFocus ) {\r
                                if ( this.visible && ( !this.onHide || this.onHide.call( this ) !== true ) ) {\r
                                        this.hideChild();\r
-                                       // Blur previously focused element. (#6671)\r
+                                       // Blur previously focused element. (http://dev.ckeditor.com/ticket/6671)\r
                                        CKEDITOR.env.gecko && this._.iframe.getFrameDocument().$.activeElement.blur();\r
                                        this.element.setStyle( 'display', 'none' );\r
                                        this.visible = 0;\r
                                        this.element.getFirst().removeCustomData( 'activePanel' );\r
 \r
-                                       // Return focus properly. (#6247)\r
+                                       // Return focus properly. (http://dev.ckeditor.com/ticket/6247)\r
                                        var focusReturn = returnFocus && this._.returnFocus;\r
                                        if ( focusReturn ) {\r
                                                // Webkit requires focus moved out panel iframe first.\r
@@ -500,7 +510,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                         * @todo\r
                         */\r
                        allowBlur: function( allow ) {\r
-                               // Prevent editor from hiding the panel. (#3222)\r
+                               // Prevent editor from hiding the panel. (http://dev.ckeditor.com/ticket/3222)\r
                                var panel = this._.panel;\r
                                if ( allow !== undefined )\r
                                        panel.allowBlur = allow;\r
@@ -553,7 +563,7 @@ CKEDITOR.plugins.add( 'floatpanel', {
                                panel.showBlock( blockName, offsetParent, corner, offsetX, offsetY );\r
                                this.blur();\r
 \r
-                               /* #3767 IE: Second level menu may not have borders */\r
+                               /* http://dev.ckeditor.com/ticket/3767 IE: Second level menu may not have borders */\r
                                if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {\r
                                        setTimeout( function() {\r
                                                panel.element.getChild( 0 ).$.style.cssText += '';\r
@@ -584,10 +594,10 @@ CKEDITOR.plugins.add( 'floatpanel', {
 \r
                for ( var i in panels ) {\r
                        var panel = panels[ i ];\r
-                       // Safe to destroy it since there're no more instances.(#4241)\r
+                       // Safe to destroy it since there're no more instances.(http://dev.ckeditor.com/ticket/4241)\r
                        if ( isLastInstance )\r
                                panel.destroy();\r
-                       // Panel might be used by other instances, just hide them.(#4552)\r
+                       // Panel might be used by other instances, just hide them.(http://dev.ckeditor.com/ticket/4552)\r
                        else\r
                                panel.element.hide();\r
                }\r