<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<p class="western" style="margin-bottom: 0cm" lang="en-GB"><font
face="Andika Compact"> 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 (<a class="moz-txt-link-freetext" href="https://gerrit.libreoffice.org/19415">https://gerrit.libreoffice.org/19415</a>)</font></p>
<p class="western" style="margin-bottom: 0cm" lang="en-GB"><font
face="Andika Compact"> 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.</font></p>
<p class="western" style="margin-bottom: 0cm" lang="en-GB"><font
face="Andika Compact"> 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.</font></p>
<p class="western" style="margin-bottom: 0cm" lang="en-GB"><font
face="Andika Compact"> 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.<br>
</font></p>
<p class="western" style="margin-bottom: 0cm" lang="en-GB"><font
face="Andika Compact">Thanks,<br>
Justin<br>
</font></p>
<title></title>
<meta name="generator" content="LibreOffice 5.0.0.5 (Linux)">
<style type="text/css">
@page { margin: 2cm }
p { margin-bottom: 0.21cm; direction: ltr; color: #000000; orphans: 0; widows: 0 }
p.western { font-family: "Trebuchet MS", sans-serif; font-size: 12pt; so-language: en-GB }
p.cjk { font-family: "AR PL KaitiM GB"; font-size: 12pt; so-language: zh-CN }
p.ctl { font-family: "Trebuchet MS", sans-serif; font-size: 12pt; so-language: ar-SA }
a:link { so-language: zxx }
</style>
</body>
</html>