8
0
Quellcode durchsuchen

Other (widget): WidgetResize will now automatically set visibleResizer when calling WidgetResize.attachTo() if the corresponding resizer's element is focused during the call.

Marek Lewandowski vor 5 Jahren
Ursprung
Commit
a152ee2b04

+ 1 - 2
packages/ckeditor5-image/src/imageresize/imageresizehandles.js

@@ -56,10 +56,9 @@ export default class ImageResizeHandles extends Plugin {
 
 		editingView.document.on( 'imageLoaded', ( evt, domEvent ) => {
 			const imageView = editor.editing.view.domConverter.domToView( domEvent.target );
-			const widgetView = imageView.parent;
+			const widgetView = imageView.findAncestor( 'figure' );
 			const mapper = editor.editing.mapper;
 
-			// const imageModel = mapper.toModelElement( imageView ) || mapper.toModelElement( imageView.parent );
 			const imageModel = mapper.toModelElement( widgetView );
 
 			if ( imageModel.name != 'image' ) {

+ 0 - 5
packages/ckeditor5-image/theme/imageresize.css

@@ -24,11 +24,6 @@
 	}
 }
 
-.ck-focused .ck-widget_with-resizer.ck-widget_selected.image.image_resizer_loading > .ck-widget__resizer {
-	/* Style to avoid resizer border flicker when the image is not yet uploaded (#8088). */
-	display: none;
-}
-
 [dir="ltr"] .ck.ck-button.ck-button_with-text.ck-resize-image-button .ck-button__icon {
 	margin-right: var(--ck-spacing-standard);
 }

+ 9 - 0
packages/ckeditor5-widget/src/widgetresize.js

@@ -148,6 +148,15 @@ export default class WidgetResize extends Plugin {
 
 		this._resizers.set( options.viewElement, resizer );
 
+		const viewSelection = this.editor.editing.view.document.selection;
+		const selectedElement = viewSelection.getSelectedElement();
+
+		// It could be that the element the resizer is created for is currently focused. In that
+		// case it should become visible.
+		if ( this._getResizerByViewElement( selectedElement ) == resizer ) {
+			this.visibleResizer = resizer;
+		}
+
 		return resizer;
 	}