Fix angle popover early hiding and shift-click behavior
Fix angle popover early hiding and shift-click behavior

This CL fixes two issues.
1. The angle popover would hide when:
(1). a new CSS property line is created
by either pressing Tab in the Styles section or clicking at an empty
space;
(2). angle popover is opened when angle swatch is clicked;
(3). click anywhere on the popover would hide the popover, which is
not expected because clicking on the popover should only update the
angle but not closing it.
Upon investigation, the culprit is when clicking on the angle swatch,
the mousedown event is consumed with `preventDefault`, which also
delays the blur event of the newly created CSS property line. There is
an internal `_editingStyle` property that determines if the angle
component will be re-created and thus lose previous popover state. This
property is set to false, which recreates <angle>, by the blur listener,
and then set to true, which prevents the re-creation (thus preserving
the popover). Since the blur event is delayed, the sequence of events
is off and causes this early dismissal of angle popover.
The fix is to not `preventDefault()` in angle swatch's mousedown
event, but this creates another problem where holding shift will
select text around <angle>. This is then fixed with setting
`user-select: none` on it.

2. This CL also fixes a previous TODO: when angle popover is open,
shift-clicking it should close the popover and not toggle the unit,
so that the behavior is consistent with color swatch for now.

Fixed: chromium:1142523
Change-Id: I1e1f4d8500d5dd9308bf5d225be3aff958fea971
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2611131
Commit-Queue: Changhao Han <68542faf32f0a558a873c0f094ca9bedb2744bff@chromium.org>
Commit-Queue: Mathias Bynens <17a2cbc4e33156874a9862b0f530521117e66a3d@chromium.org>
Auto-Submit: Changhao Han <68542faf32f0a558a873c0f094ca9bedb2744bff@chromium.org>
Reviewed-by: Mathias Bynens <17a2cbc4e33156874a9862b0f530521117e66a3d@chromium.org>

ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend,ChromeDevTools/devtools-frontend