Bug 86399 - find and replace dialogue - composed characters do not display properly - sometimes hidden completely
Summary: find and replace dialogue - composed characters do not display properly - som...
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
4.3.0.4 release
Hardware: Other Linux (All)
: medium minor
Assignee: Not Assigned
URL:
Whiteboard: target:4.5.0 target:4.4.3 target:4.3....
Keywords: bibisected, bisected, regression
Depends on:
Blocks:
 
Reported: 2014-11-17 15:16 UTC by Justin L
Modified: 2018-04-21 22:07 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments
screenshot of find dialog with some characters hidden/missing (92.35 KB, image/png)
2014-11-17 15:16 UTC, Justin L
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Justin L 2014-11-17 15:16:46 UTC
Created attachment 109626 [details]
screenshot of find dialog with some characters hidden/missing

Some dialogs (specifically find/replace, but perhaps others as well) do not always show all parts of the characters entered.   Combining codes can add stacking elements to characters, and these are not always show.  Sometimes the letters disappear completely (and a blank is shown instead).  Sometimes typing another character will make them appear.

I bisected the bug.  Previously, it did not "hide" the characters, but they did not show all of the stacked elements.  So, I think some code was added at the point I am marking as "bad" in bibisect that tried to correct this behaviour, but failed to do it in all cases.

I am attaching a screenshot.  The characters I am searching for (óaọ́bụ́cị́d) are shown clearly in the document, but some are "hidden" in the find dialog box.

Testing is done on Mint 13 (12.04 based).  I did not notice the problem on the windows platform.


 e7cbc9b8764280fd4799e234ca32925e91547a82 is the first bad commit
commit e7cbc9b8764280fd4799e234ca32925e91547a82
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date:   Thu Oct 17 10:00:41 2013 +0000

    source-hash-31b35ed6bb7fe77f3f276b00fefce112a620b6ac
    
    commit 31b35ed6bb7fe77f3f276b00fefce112a620b6ac
    Author:     Tsahi Glik <tsahi.glik@cloudon.com>
    AuthorDate: Tue Jun 4 20:25:41 2013 +0200
    Commit:     Thorsten Behrens <tbehrens@suse.com>
    CommitDate: Tue Jun 4 20:38:09 2013 +0200
    
        Detect copyArea trying to operate on overlapping memory.
    
        Equality test also needs to check if disjunct BitmapDevice instances
        might not actually share the same memory buffer.
    
        Change-Id: I09a93cb092a0039353be211ed053e991e7fe66f0

:100644 100644 342d9b7294c786fd281ded24c8286c3f15d554df 8c5e50bd1bf7d186e24a574b9462462f74986bd8 M	autogen.log
:100644 100644 a572cd47ce5160f11b713367ba7fb4f02d090fc3 49c023e2d36621396be9608a0a64bb670ac44e56 M	ccache.log
:100644 100644 60d8d739c899d5d2d1164d8625dcf3b542655b12 1f724a450a2ba6123dc2772c4779157757705897 M	commitmsg
:100644 100644 6c9f2f08c5f4e9d4fe3e0f0a80a556f3c8891200 058e9f056380574e4073b082180e87b9646d4e8b M	dev-install.log
:100644 100644 0b86f397a88f3413f1ca339b4440d9e00cdae712 115a24f6a9e45b293b22377dc409001a05069581 M	make.log
:040000 040000 c50e46f86d92d51dd27b34caebb4ea53e9b6c8d1 2d7a96e6b40994d4cff6f226ff2d54947490dabc M	opt

# bad: [423a84c4f7068853974887d98442bc2a2d0cc91b] source-hash-c15927f20d4727c3b8de68497b6949e72f9e6e9e
# good: [65fd30f5cb4cdd37995a33420ed8273c0a29bf00] source-hash-d6cde02dbce8c28c6af836e2dc1120f8a6ef9932
git bisect start 'latest' 'oldest'
# bad: [e02439a3d6297a1f5334fa558ddec5ef4212c574] source-hash-6b8393474974d2af7a2cb3c47b3d5c081b550bdb
git bisect bad e02439a3d6297a1f5334fa558ddec5ef4212c574
# good: [8f4aeaad2f65d656328a451154142bb82efa4327] source-hash-1885266f274575327cdeee9852945a3e91f32f15
git bisect good 8f4aeaad2f65d656328a451154142bb82efa4327
# good: [9995fae0d8a24ce31bcb5e9cd0459b69cfbf7a02] source-hash-8600bc24bbc9029e92bea6102bff2921bc10b33e
git bisect good 9995fae0d8a24ce31bcb5e9cd0459b69cfbf7a02
# good: [8ad82bc1416a07501651e8d96fe268e47d3931d3] source-hash-13821254f88d2c5488fba9fe6393dcf4ae810db4
git bisect good 8ad82bc1416a07501651e8d96fe268e47d3931d3
# good: [d084d250b04446535ca1d7c29cf2062e6bd042b3] source-hash-688f72e3a2c3ef923389bbd21f6aea3afe1114db
git bisect good d084d250b04446535ca1d7c29cf2062e6bd042b3
# good: [c2069a369d738078124812312d51f21ea1ce2421] source-hash-f160e4935c474a5293b3d3c11b3d538efb4767a0
git bisect good c2069a369d738078124812312d51f21ea1ce2421
# good: [a0f20bc04a32a7791ba765d2de2f44f1b74033d1] source-hash-1de66ba440855050a794b3b2a8647c1b02c210b8
git bisect good a0f20bc04a32a7791ba765d2de2f44f1b74033d1
# good: [a48fbf799e4d4d555fe383b7233c804f573eca4e] source-hash-bb6ecd8b40313b7cc83d4e619029f4e001334a52
git bisect good a48fbf799e4d4d555fe383b7233c804f573eca4e
# bad: [e7cbc9b8764280fd4799e234ca32925e91547a82] source-hash-31b35ed6bb7fe77f3f276b00fefce112a620b6ac
git bisect bad e7cbc9b8764280fd4799e234ca32925e91547a82
# good: [83c4b38e3383fa59cb8c8fe440f8b9e48fcae2c6] source-hash-44404b7a6c7bb3b95d03094abb745f29a5154959
git bisect good 83c4b38e3383fa59cb8c8fe440f8b9e48fcae2c6

Last good is Michael Stahl 2013-04-30 13:58:24, *api: fix all unknown commands
Comment 1 Urmas 2014-11-18 06:47:57 UTC
GTK issue?
Comment 2 Justin L 2014-11-18 12:55:53 UTC
confirmed the problem also exists in 14.04 Mint.   Problem can be seen in Calc, Impress, and Draw find, find/replace.
Comment 3 anthonyds12 2014-12-15 12:39:21 UTC
I can't reproduce this with LibreOffice 4.3.4.1 on OS X 10.10.1
Comment 4 Buovjaga 2014-12-16 12:48:55 UTC
Reproduced when pressing the downward triangle next to Search for field. Missing chars are ọ́, ụ́ and ị́.

Lowering severity per https://wiki.documentfoundation.org/images/0/06/Prioritizing_Bugs_Flowchart.jpg

Ubuntu 14.10 64-bit Version: 4.5.0.0.alpha0+
Build ID: f92183833fa569006602ac7e93c906d2094e0d4d
TinderBox: Linux-rpm_deb-x86_64@46-TDF-dbg, Branch:master, Time: 2014-12-14_00:21:45
Comment 5 Matthew Francis 2015-04-01 01:03:37 UTC
Adjusted Keywords
-> -bisected, +regression
Comment 6 Matthew Francis 2015-04-01 04:08:29 UTC
This seems to have begun at the below commit.
Adding Cc: to caolanm@redhat.com; Could you possibly take a look at this? Thanks

commit 3b4d361c21a1289b664cbcb9c15751d99ef6348d
Author: Caolán McNamara <caolanm@redhat.com>
Date:   Tue Jun 4 15:48:23 2013 +0100

    Resolves: rhbz#968892 force render full grapheme with fallback font
    
    Change-Id: I5bb98c61d047e69d74666261b2c489d80f344502
Comment 7 Matthew Francis 2015-04-01 04:20:28 UTC
Linked bug 90385, which had a similar effect on some other characters, but was caused by a different commit
Comment 8 Caolán McNamara 2015-04-02 13:35:07 UTC
While that might be the trigger, I think the problem is somewhere else. Digging...
Comment 9 Commit Notification 2015-04-02 15:31:07 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=b1030f75d3e47719ca63ec518f1da75196bead1a

Resolves: tdf#86399 don't clobber cluster start caret pos

It will be available in 4.5.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 10 Caolán McNamara 2015-04-02 15:41:07 UTC
I get two glyphs for ọ́  but both are considered in the same cluster by harfbuzz and so we map them both to the initial ọ. The above commit "works" as far as I can see anyway.
Comment 11 ⁨خالد حسني⁩ 2015-04-02 20:58:13 UTC
Yes, HarfBuzz assigns combining marks the same cluster as their bases, we should be using that fact to treat them as one grapheme.
Comment 12 Justin L 2015-04-04 10:29:39 UTC
Confirmed that the fix works for me.   Thanks Caolán.  Can you push this into the 4.4 branch?
Comment 13 Caolán McNamara 2015-04-07 09:06:46 UTC
https://gerrit.libreoffice.org/#/c/15119/
Comment 14 Commit Notification 2015-04-08 11:41:26 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-4":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=784ff3f0765eb94d025ef789f15ef10f51b8cc15&h=libreoffice-4-4

Resolves: tdf#86399 don't clobber cluster start caret pos

It will be available in 4.4.3.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 15 Commit Notification 2015-04-08 14:42:33 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-4-3":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=598329f0450df98672ef30fc0f08aa718b8f3fcd&h=libreoffice-4-3

Resolves: tdf#86399 don't clobber cluster start caret pos

It will be available in 4.3.7.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 16 Robinson Tryon (qubit) 2015-12-17 08:39:32 UTC Comment hidden (obsolete)
Comment 17 Commit Notification 2018-04-21 22:07:02 UTC
Khaled Hosny committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=63a4ecc3881596a448d47f564c722ad944ff7e67

tdf#86399 Correctly set cluster start for RTL runs

It will be available in 6.1.0.

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

Affected users are encouraged to test the fix and report feedback.