Index: CKEditor/branches/versions/3.3.x/CHANGES.html
===================================================================
--- CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/CHANGES.html	(revision 5378)
@@ -41,4 +41,5 @@
 	<ul>
 		<li><a href="http://dev.fckeditor.net/ticket/4968">#4968</a> : Config entry 'contentsLangDirection' now has a default value 'ui' which inherit language direction from editor's (UI) language.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/635">#635</a> : Open properties dialog when double clicking on objects.</li>
 	</ul>
 	<p>
Index: CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/flash/plugin.js	(revision 5378)
@@ -77,5 +77,13 @@
 					});
 			}
-
+			
+			editor.on( 'doubleclick', function( evt )
+				{
+					var element = evt.data.element;;
+					
+					if ( element.is( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'flash' ) 
+						evt.data.dialog = 'flash';
+				});
+				
 			// If the "contextmenu" plugin is loaded, register the listeners.
 			if ( editor.contextMenu )
Index: CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/forms/plugin.js	(revision 5378)
@@ -173,4 +173,41 @@
 				});
 		}
+
+		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( 'img' ) && element.getAttribute( '_cke_real_element_type' ) == 'hiddenfield' )
+					evt.data.dialog = 'hiddenfield';
+				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;
+					}
+				}
+			});
 	},
 
Index: CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/image/plugin.js	(revision 5378)
@@ -26,5 +26,13 @@
 				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: CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/link/plugin.js	(revision 5378)
@@ -65,5 +65,15 @@
 					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: CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/table/plugin.js	(revision 5378)
@@ -45,5 +45,13 @@
 				} );
 		}
-
+		
+		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: CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5307)
+++ CKEditor/branches/versions/3.3.x/_source/plugins/wysiwygarea/plugin.js	(revision 5378)
@@ -385,4 +385,12 @@
 						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) )
