-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Fix dragging in inspector causing block deselection #40604
Merged
talldan
merged 2 commits into
trunk
from
fix/clicking-or-dragging-in-inspector-causing-block-deselection
Apr 26, 2022
Merged
Fix dragging in inspector causing block deselection #40604
talldan
merged 2 commits into
trunk
from
fix/clicking-or-dragging-in-inspector-causing-block-deselection
Apr 26, 2022
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
talldan
requested review from
ntwb,
nerrad,
ajitbohra and
ellatrix
as code owners
April 26, 2022 06:05
talldan
added
[Type] Bug
An existing feature does not function as intended
[Feature] Writing Flow
Block selection, navigation, splitting, merging, deletion...
[Feature] Block Multi Selection
The ability to select and manipulate multiple blocks
Backport to WP 6.7 Beta/RC
Pull request that needs to be backported to the WordPress major release that's currently in beta
labels
Apr 26, 2022
Size Change: +13 B (0%) Total Size: 1.23 MB
ℹ️ View Unchanged
|
ntsekouras
approved these changes
Apr 26, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense, thanks!
talldan
deleted the
fix/clicking-or-dragging-in-inspector-causing-block-deselection
branch
April 26, 2022 07:59
adamziel
pushed a commit
that referenced
this pull request
Apr 26, 2022
* Only attempt to select blocks when clicking or highlighting text block text * Add e2e test
This was backported to wp/6.0 branch to be included in WordPress 6.0 Beta 3 today: 7bbbf27 |
adamziel
removed
the
Backport to WP 6.7 Beta/RC
Pull request that needs to be backported to the WordPress major release that's currently in beta
label
Apr 26, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
[Feature] Block Multi Selection
The ability to select and manipulate multiple blocks
[Feature] Writing Flow
Block selection, navigation, splitting, merging, deletion...
[Type] Bug
An existing feature does not function as intended
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Fixes #40091
Fixes an issue where dragging (e.g. to select text) resulted in the block being deselected and the block inspector being hidden.
Why?
The problem seems to have been accidentally introduced with cross-block text selection. There's a
useSelectionObserver
that picks up selection events from both inside and outside the editor canvas, it wasn't checking to see if that selection involved blocks.selectBlock
was being called here with anundefined
clientId, resulting in a deselection:gutenberg/packages/block-editor/src/components/writing-flow/use-selection-observer.js
Lines 103 to 105 in f705d1c
How?
This fix adds an early return to
useSelectionObserver
when there's noclientId
(block) involved in the selection, which looking at how other similar hooks work seemed like the most consistent fix.Added an e2e test.
Alternatives
It may also be possible to check that the event only occurred within the editor canvas, but I'm not familiar enough with the pitfalls of making such a change.
Testing Instructions
Expected: the text should be selected and the block should stay selected.
Also worth testing - cross-block text selections still works
Screenshots or screencast
Before
Kapture.2022-04-26.at.14.03.02.mp4
After
Kapture.2022-04-26.at.14.00.20.mp4