diff --git a/packages/edit-post/src/components/layout/use-padding-appender.js b/packages/edit-post/src/components/layout/use-padding-appender.js index efd46a485058c..8bd245e278aec 100644 --- a/packages/edit-post/src/components/layout/use-padding-appender.js +++ b/packages/edit-post/src/components/layout/use-padding-appender.js @@ -11,7 +11,13 @@ export function usePaddingAppender() { return useRefEffect( ( node ) => { function onMouseDown( event ) { - if ( event.target !== node ) { + if ( + event.target !== node && + // Tests for the parent element because in the iframed editor if the click is + // below the padding the target will be the parent element (html) and should + // still be treated as intent to append. + event.target !== node.parentElement + ) { return; } @@ -38,7 +44,7 @@ export function usePaddingAppender() { return; } - event.stopPropagation(); + event.preventDefault(); const blockOrder = registry .select( blockEditorStore ) @@ -57,9 +63,12 @@ export function usePaddingAppender() { insertDefaultBlock(); } } - node.addEventListener( 'mousedown', onMouseDown ); + const { ownerDocument } = node; + // Adds the listener on the document so that in the iframed editor clicks below the + // padding can be handled as they too should be treated as intent to append. + ownerDocument.addEventListener( 'mousedown', onMouseDown ); return () => { - node.removeEventListener( 'mousedown', onMouseDown ); + ownerDocument.removeEventListener( 'mousedown', onMouseDown ); }; }, [ registry ]