Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Is a highly skilled developer on Linux willing to spend a few hours looking into ibus/kmfl bug 95096? I've spent a week on it and am stuck. To help, I think you need to understand SolarMutexGuards, yield(), and accessible Portions well. I have some SAL_WARN debugging set up on gerrit (https://gerrit.libreoffice.org/19415)

Visibly, the problem is that a kmfl character composing sequence (like ;;~a for ä̃) doesn't delete all of the composing sequence in a table cell when the row contains a table-in-table. Code-wise, the problem is something like the accessible PortionData loses the focus after the first character is deleted, and thus the two remaining signalIMDeleteSurrounding calls do nothing because they can't find the focus/cursor context. The problem apparently comes from external layout calls - it doesn't seem to be a logic failure in the direct code path.

Potential fix concepts are a.) locking outside changes until ibus's 3xdelete + add character is done, b.) preventing loss of focus / requiring FocusWin to actually have a focused portion, or c.) falling back to cursor position if no portion has the focus.

I'm going to look into the band-aid option (c) now, but I'm afraid of regressions with that approach. Fix idea A involves external libraries? Fix idea B seems best, but I completely failed to identify how the focus is lost.

Thanks,
Justin


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.