Bug 132970 - Support to use Unicode SMP characters as bullets
Summary: Support to use Unicode SMP characters as bullets
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Caolán McNamara
URL:
Whiteboard: target:7.1.0
Keywords:
Depends on:
Blocks: Bullet-Numbering-Dialog Special-Character
  Show dependency treegraph
 
Reported: 2020-05-12 08:32 UTC by Dirk W.
Modified: 2020-09-23 10:14 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
screenshot of the special character dialog (141.06 KB, image/png)
2020-05-15 10:05 UTC, Dirk W.
Details
Selection of bullet glyph when made from font with Unicode SMP coverage (33.07 KB, image/png)
2020-05-15 14:30 UTC, V Stuart Foote
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk W. 2020-05-12 08:32:33 UTC
Description:
I use typographically appropriate bullets for the respective project, which I take mainly from the font “Segoe UI Symbol”. Now I want to use a special character with a five-digit hexadecimal code for the first time (“Four Pointed Black Star” – U+1F7C6). The selection of this character works but not its actual adoption in the document. Instead, the character “Black Diamond with query” (U+FFFD) appears, which is entered as “Replacement character” in Unicode.

This phenomenon generally occurs with hexadecimal codes of more than four digits – e.g. also with the character “Small Lozenge” (U+1F7A0).

Steps to Reproduce:
1. Mark the text you want to assign enumerations to
2. Choose “Format\Bullets and Numbering…” resp. the tab page “Customize”.
3. Click on “Select…” in “Character”.
4. Choose as Font “Segoe UI Symbol” (Standard-font in Win 10).
5a. Select any character with four digits – it works.
5b. Select any character with more than four digits – the “Replacement character” (U+FFFD) appears.

Actual Results:
See 5b in “Steps to Reproduce”.

Expected Results:
The choosen character – e.g. “Four Pointed Black Star” (U+1F7C6) – should appear as a bullet in the enumerations in the document.


Reproducible: Always


User Profile Reset: Yes



Additional Info:
Version: 6.4.4.1 (x64)
Build-ID: b50bc319eca5cd5b66fbfe2ebd0d3bd1eed099b5
CPU-Threads: 8; BS: Windows 10.0 Build 19041; UI-Render: Standard; VCL: win; 
Gebietsschema: de-DE (de_DE); UI-Sprache: de-DE
Calc: threaded
Comment 1 Dieter 2020-05-15 07:22:04 UTC
I've treid to reproduce, but couldn't find any character within Segue UI with more than four digits. If I insert U+1F7C6 I got no result. Cpuld you add a screenshot of the special character dialog?

Additional informations
Steps to reproduce: Step 3a: Choose Bullet in the Number Dropdown list
Comment 2 Dirk W. 2020-05-15 10:05:44 UTC
Created attachment 160850 [details]
screenshot of the special character dialog
Comment 3 Dirk W. 2020-05-15 10:08:11 UTC
Hi Dieter,

you are right, there is no character with more than four digits in the font “Segoe UI”, but I spoke of the font “Segoe UI Symbol”, which is a different font, but is also included as a standard font in Win 10. If you have chosen “Segoe UI Symbol” and you will go to the “subset” “Geometric Shapes Extended” (or enter 1F7C6 in “Hexadecimal: U+”), then there you will find the character “Four Pointed Black Star” (U+1F7C6) – see attachment.
Comment 4 Dieter 2020-05-15 10:22:39 UTC
Found it, and can confirm the bug with

Version: 7.0.0.0.alpha1+ (x64)
Build ID: 99c337d1d3831ce9d2c7dc1cbff713f4ac49d6ac
CPU threads: 4; OS: Windows 10.0 Build 18363; UI render: Skia/Raster; VCL: win; 
Locale: en-GB (de_DE); UI: en-GB
Calc: CL

and also with

Version: 6.3.5.2 (x64)
Build-ID: dd0751754f11728f69b42ee2af66670068624673
CPU-Threads: 4; BS: Windows 10.0; UI-Render: Standard; VCL: win; 
Gebietsschema: de-DE (de_DE); UI-Sprache: de-DE
Calc: threaded
Comment 5 V Stuart Foote 2020-05-15 14:29:31 UTC
So the Unicode SMP glyphs can be selected from a font that contains them. Rather, seems they are not rendered by the Bullets and Numbering dialog's 'Customize' tab, nor onto document canvas.
Comment 6 V Stuart Foote 2020-05-15 14:30:55 UTC
Created attachment 160863 [details]
Selection of bullet glyph when made from font with Unicode SMP coverage
Comment 7 Dirk W. 2020-06-29 08:40:40 UTC
Hi folks,

Isn’t there anyone who would be happy to be the proper person to work on this bug?
Comment 8 Dirk W. 2020-09-20 10:36:00 UTC
I can confirm the bug also with

Version: 7.0.1.2 (x64)
Build ID: 7cbcfc562f6eb6708b5ff7d7397325de9e764452
CPU threads: 8; OS: Windows 10.0 Build 19041; UI render: default; VCL: win
Locale: de-DE (de_DE); UI: de-DE
Calc: threaded
Comment 9 V Stuart Foote 2020-09-20 16:07:23 UTC
Behavior attempting to use SMP character as a bullet is correct, if unexpected. We don't seem to support non-BMP glyphs as bullets.

Working with a Flat ODF, edit and directly inserting SMP glyph into the "text:bullet-char" value of the  <text:list-level-style-bullet text:level="1" text:style-name="Bullet_20_Symbols" text:bullet-char="">

On parsing the ODF, the SMP bullet is not rendered, and is removed when ODF is saved--the font assigned to the bullet remains unchanged.

So, seems it is not an issue with the cuicharmap.cxx Special Character dialog for selecting font and picking a glyph from SMP, rather something fundamental in handling the glyphs assigned as bullets.

Currently only characters drawn from the Unicode BMP can be assigned, enhancement needed to expand that into the SMP. 

Reading ODF v1.3 [1] 19.765 or ODF v1.2 [2] 19.760 character can be any single Unicode glyph--i.e. SMP is not excluded from use.
Comment 11 Dirk W. 2020-09-20 17:58:50 UTC
V Stuart Foote: You write: “Currently only characters drawn from the Unicode BMP can be assigned, enhancement needed to expand that into the SMP.” Yes, I agree with you that this is the problem. The developers of LO-Writer would have to allow the input of Unicode SMP in the Special Character dialog for selecting font and picking a glyph.
Comment 12 Heiko Tietze 2020-09-21 09:42:24 UTC
Not a topic for UX (good to know anyway) and I would take it as a bug.
Comment 13 Commit Notification 2020-09-22 10:52:51 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/be8a33c0f03b83357d2ae37dda6bf65313267cea

tdf#132970 SMP bullets mangled

It will be available in 7.1.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 14 Commit Notification 2020-09-22 16:39:51 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/8898955456ce6a6dc0ce9401ee05ce9d04e13668

Related: tdf#132970 handle more places with potentially utf16 bullets

It will be available in 7.1.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 15 Dirk W. 2020-09-22 16:49:18 UTC
Caolán McNamara: I’m very happy to hear the bug is resolved. I will try one of the next daily builds and will give feedback. Also I will looking forward to version 7.1.xx in January/February 2021.
Comment 16 Dirk W. 2020-09-23 09:06:43 UTC
Caolán McNamara: I installed this morning Version: 7.1.0.0.alpha0+ (x64) from 2020-09-23_04.55.19.

The input of Unicode SMP in the Special Character dialog for selecting font and picking a glyph and its actual adoption in the document went very well.

Thank you very much!
Comment 17 Heiko Tietze 2020-09-23 10:14:59 UTC
Thanks Dirk for the submitting the request and validating the result (you may set to Verfied yourself). And thanks to Caolan for quick implementation.