This PR fixes incorrect parsing of mnemonic symbols in the following cases:
1. an escaped double underscore incorrectly shows up as a double underscore in
displayed text
2. an extended mnemonic incorrectly removes a part of adjacent text
As a side effect, this PR also fixes another undocumented issue for multiline
text where text metrics calculations incorrectly operate on text for which
mnemonic symbols have not been processed.
This can lead to a glitch where the mnemonic underscore makes a text just long
enough to wrap to a new line, but when the text is rendered, the second line
shows up entirely empty. The reason for this is that for rendering, the text is
laid out _after_ mnemonic symbols have been removed.
The solution is to _always_ use processed text ("_clean text_") when laying out
text.
-------------
Commit messages:
- Additional test
- Fix mnemonic processing in LabeledSkinBase
- Add failing tests
Changes: https://git.openjdk.java.net/jfx/pull/453/files
Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=453&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8137323
Stats: 251 lines in 3 files changed: 120 ins; 51 del; 80 mod
Patch: https://git.openjdk.java.net/jfx/pull/453.diff
Fetch: git fetch https://git.openjdk.java.net/jfx pull/453/head:pull/453
PR: https://git.openjdk.java.net/jfx/pull/453