Index: src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js
===================================================================
--- src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js	(revision 31274)
+++ src/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js	(working copy)
@@ -1036,15 +1036,6 @@
 			}
 		});
 
-		dom.bind( editor.getDoc(), 'dragstart', function( event ) {
-			var node = editor.selection.getNode();
-
-			// Prevent dragging images out of the caption elements
-			if ( node.nodeName === 'IMG' && dom.getParent( node, '.wp-caption' ) ) {
-				event.preventDefault();
-			}
-		});
-
 		// Prevent IE11 from making dl.wp-caption resizable
 		if ( tinymce.Env.ie && tinymce.Env.ie > 10 ) {
 			// The 'mscontrolselect' event is supported only in IE11+
@@ -1218,6 +1209,24 @@
 		}
 	});
 
+	function selectImageWrap() {
+		var node = editor.selection.getNode();
+
+		if ( node.nodeName === 'IMG' && node.parentNode.nodeName === 'A' ) {
+			editor.selection.select( node.parentNode );
+		} else if ( node = editor.dom.getParent( node, '.mceTemp' ) ) {
+			editor.selection.select( node );
+		}
+	}
+
+	editor.on( 'dragstart', selectImageWrap );
+	editor.on( 'contextmenu', selectImageWrap );
+	editor.on( 'keydown', function( event ) {
+		if ( tinymce.util.VK.metaKeyPressed( event ) ) {
+			selectImageWrap();
+		}
+	} );
+
 	return {
 		_do_shcode: parseShortcode,
 		_get_shcode: getShortcode
