Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add an overlay to the html block preview to fix block selection in Firefox #20425

Merged
merged 7 commits into from
Feb 26, 2020

Conversation

glendaviesnz
Copy link
Contributor

@glendaviesnz glendaviesnz commented Feb 24, 2020

In Firefox, if an html block is left in preview mode, it is very difficult to reselect the block except by clicking on the very bottom edge of the block - https://share.getcloudapp.com/9ZuArmrd.

It appears that the click events are not bubbling up from the sandboxed iframe, and the selection works on the bottom edge due to some padding/margin which is outside the extents of the iframe.

Fixes #12577

Description

This PR adds an overlay which covers the html preview area in order to prevent clicks being trapped in the sandboxed iframe

Before:
before

After:
after

How has this been tested?

Tested manually in Firefox and Chrome.

Types of changes

Adds additional HTML and CSS to html block

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.

@glendaviesnz glendaviesnz added [Type] Bug An existing feature does not function as intended [Block] HTML Affects the the HTML Block labels Feb 24, 2020
@glendaviesnz glendaviesnz self-assigned this Feb 24, 2020
@github-actions
Copy link

github-actions bot commented Feb 24, 2020

Size Change: +57 B (0%)

Total Size: 866 kB

Filename Size Change
build/block-library/editor-rtl.css 7.68 kB +20 B (0%)
build/block-library/editor.css 7.68 kB +20 B (0%)
build/block-library/index.js 116 kB +17 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.01 kB 0 B
build/annotations/index.js 3.43 kB 0 B
build/api-fetch/index.js 3.39 kB 0 B
build/autop/index.js 2.58 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.02 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 104 kB 0 B
build/block-editor/style-rtl.css 10.5 kB 0 B
build/block-editor/style.css 10.5 kB 0 B
build/block-library/style-rtl.css 7.49 kB 0 B
build/block-library/style.css 7.5 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.6 kB 0 B
build/components/index.js 191 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/compose/index.js 5.76 kB 0 B
build/core-data/index.js 10.5 kB 0 B
build/data-controls/index.js 1.03 kB 0 B
build/data/index.js 8.22 kB 0 B
build/date/index.js 5.37 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.06 kB 0 B
build/edit-post/index.js 90.9 kB 0 B
build/edit-post/style-rtl.css 8.59 kB 0 B
build/edit-post/style.css 8.58 kB 0 B
build/edit-site/index.js 4.62 kB 0 B
build/edit-site/style-rtl.css 2.51 kB 0 B
build/edit-site/style.css 2.51 kB 0 B
build/edit-widgets/index.js 4.41 kB 0 B
build/edit-widgets/style-rtl.css 2.59 kB 0 B
build/edit-widgets/style.css 2.58 kB 0 B
build/editor/editor-styles-rtl.css 325 B 0 B
build/editor/editor-styles.css 327 B 0 B
build/editor/index.js 44.6 kB 0 B
build/editor/style-rtl.css 4.01 kB 0 B
build/editor/style.css 4 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.6 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 1.92 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.48 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.68 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 4.85 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.02 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.49 kB 0 B
build/priority-queue/index.js 879 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.3 kB 0 B
build/server-side-render/index.js 2.54 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4 kB 0 B
build/viewport/index.js 1.61 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.18 kB 0 B

compressed-size-action

Copy link
Contributor

@youknowriad youknowriad left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix, it makes sense to me but I was wondering if we ever want people to access the HTML (click on links, ...)

@glendaviesnz
Copy link
Contributor Author

Thanks for the fix, it makes sense to me but I was wondering if we ever want people to access the HTML (click on links, ...)

Good question, hadn't thought about that, will have another look at it with that in mind.

@glendaviesnz
Copy link
Contributor Author

@youknowriad I modified it so the overlay is only in place if the block is not selected, once selected it is removed so that any click actions within the html block will still work.

html={ attributes.content }
styles={ styles }
/>
{ ! this.props.isSelected && (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we maybe add a comment explaining why the overlay is needed (browser issue)

@glendaviesnz glendaviesnz force-pushed the fix/html-block-selection-bug branch from 886fa69 to 910dc7b Compare February 26, 2020 21:03
@glendaviesnz glendaviesnz merged commit 41a0d8b into master Feb 26, 2020
@glendaviesnz glendaviesnz deleted the fix/html-block-selection-bug branch February 26, 2020 22:49
@github-actions github-actions bot added this to the Gutenberg 7.7 milestone Feb 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] HTML Affects the the HTML Block [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can't reliably select and edit HTML Blocks
2 participants