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
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
\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
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
\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
\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
}, 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
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
\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
\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
\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
}\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
// 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
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
* @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
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
\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