Index: _source/plugins/forms/plugin.js =================================================================== --- _source/plugins/forms/plugin.js (revision 5375) +++ _source/plugins/forms/plugin.js (working copy) @@ -114,7 +114,42 @@ } }); } - + + editor.on( 'doubleclick', function( evt ) + { + var element = evt.data.element; + + if ( element.is( 'form' ) ) + evt.data.dialog = 'form'; + else if ( element.is( 'select' ) ) + evt.data.dialog = 'select'; + else if ( element.is( 'textarea' ) ) + evt.data.dialog = 'textarea'; + else if ( element.is( 'input' ) ) + { + var type = element.getAttribute( 'type' ); + + switch ( type ) + { + case 'text' : case 'password': + evt.data.dialog = 'textfield'; + break; + case 'button' : case 'submit' : case 'reset' : + evt.data.dialog = 'button'; + break; + case 'checkbox' : + evt.data.dialog = 'checkbox'; + break; + case 'radio' : + evt.data.dialog = 'radio'; + break; + case 'image' : + evt.data.dialog = 'imagebutton'; + break; + } + } + }); + // If the "contextmenu" plugin is loaded, register the listeners. if ( editor.contextMenu ) { Index: _source/plugins/image/plugin.js =================================================================== --- _source/plugins/image/plugin.js (revision 5375) +++ _source/plugins/image/plugin.js (working copy) @@ -25,7 +25,15 @@ label : editor.lang.common.image, command : pluginName }); - + + editor.on( 'doubleclick', function( evt ) + { + var element = evt.data.element; + + if ( element.is( 'img' ) && !element.getAttribute( '_cke_realelement' ) ) + evt.data.dialog = 'image'; + }); + // If the "menu" plugin is loaded, register the menu items. if ( editor.addMenuItems ) { Index: _source/plugins/link/plugin.js =================================================================== --- _source/plugins/link/plugin.js (revision 5375) +++ _source/plugins/link/plugin.js (working copy) @@ -64,7 +64,17 @@ else command.setState( CKEDITOR.TRISTATE_DISABLED ); } ); - + + editor.on( 'doubleclick', function( evt ) + { + var element = CKEDITOR.plugins.link.getSelectedLink( editor ) || evt.data.element; + + if ( element.is( 'a' ) ) + evt.data.dialog = ( element.getAttribute( 'name' ) && !element.getAttribute( 'href' ) ) ? 'anchor' : 'link'; + else if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' ) + evt.data.dialog = 'anchor'; + }); + // If the "menu" plugin is loaded, register the menu items. if ( editor.addMenuItems ) { Index: _source/plugins/table/plugin.js =================================================================== --- _source/plugins/table/plugin.js (revision 5375) +++ _source/plugins/table/plugin.js (working copy) @@ -44,7 +44,15 @@ } } ); } - + + editor.on( 'doubleclick', function( evt ) + { + var element = evt.data.element; + + if ( element.is( 'table' ) ) + evt.data.dialog = 'table'; + }); + // If the "contextmenu" plugin is loaded, register the listeners. if ( editor.contextMenu ) { Index: _source/plugins/tabletools/plugin.js =================================================================== --- _source/plugins/tabletools/plugin.js (revision 5375) +++ _source/plugins/tabletools/plugin.js (working copy) @@ -854,7 +854,14 @@ insertCell( selection ); } } ); - + + editor.on( 'doubleclick', function( evt ) + { + var element = evt.data.element; + + if ( element.is( 'td' ) ) + evt.data.dialog = 'cellProperties'; + }); // If the "menu" plugin is loaded, register the menu items. if ( editor.addMenuItems ) { Index: _source/plugins/wysiwygarea/plugin.js =================================================================== --- _source/plugins/wysiwygarea/plugin.js (revision 5375) +++ _source/plugins/wysiwygarea/plugin.js (working copy) @@ -384,6 +384,14 @@ domWindow = editor.window = new CKEDITOR.dom.window( domWindow ); domDocument = editor.document = new CKEDITOR.dom.document( domDocument ); + domDocument.on( 'dblclick', function( evt ) + { + var element = evt.data.getTarget(), + data = { element : element, dialog : '' }; + editor.fire( 'doubleclick', data ); + data.dialog && editor.openDialog( data.dialog ); + }); + // Gecko/Webkit need some help when selecting control type elements. (#3448) if ( !( CKEDITOR.env.ie || CKEDITOR.env.opera) ) {