<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>27396</bug_id>
          
          <creation_ts>2009-07-17 16:02:08 -0700</creation_ts>
          <short_desc>Moving cursor in Thai text sometimes jumps over two characters</short_desc>
          <delta_ts>2009-07-17 16:22:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>hbono</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132754</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-17 16:02:08 -0700</bug_when>
    <thetext>This is very similar to bug 24342, but happens for different characters. Moving insertion point left or right shouldn&apos;t jump over several glyphs, even if those form an extended grapheme cluster.

ICU has a special case for those Thai characters now, see &lt;http://source.icu-project.org/repos/icu/icu/trunk/source/data/brkitr/char_th.txt&gt;. We should do the same.

Patch with a test forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132756</commentid>
    <comment_count>1</comment_count>
      <attachid>32987</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-17 16:05:27 -0700</bug_when>
    <thetext>Created attachment 32987
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132757</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-17 16:09:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/7069717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132761</commentid>
    <comment_count>3</comment_count>
      <attachid>32987</attachid>
    <who name="">mitz</who>
    <bug_when>2009-07-17 16:16:04 -0700</bug_when>
    <thetext>Comment on attachment 32987
proposed fix

r=me if you add a description and the Radar link to the change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132764</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-17 16:22:54 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/46069&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32987</attachid>
            <date>2009-07-17 16:05:27 -0700</date>
            <delta_ts>2009-07-17 16:16:04 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>Thai.txt</filename>
            <type>text/plain</type>
            <size>5149</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjA2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDktMDctMTcgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAg
VGVzdDogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50Lmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEJyZWFrSXRlcmF0b3JJQ1UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y3Vyc29yTW92ZW1lbnRJdGVyYXRvcik6CisKIDIwMDktMDctMTcgIE1pY2hl
bGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEJyZWFr
SXRlcmF0b3JJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
QnJlYWtJdGVyYXRvcklDVS5jcHAJKHJldmlzaW9uIDQ2MDU3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDcg
KzE2MCw3IEBAIFRleHRCcmVha0l0ZXJhdG9yKiBjdXJzb3JNb3ZlbWVudEl0ZXJhdG8KICAgICAg
ICAgIiRMRiAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gTEZ9XTsiCiAgICAg
ICAgICIkQ29udHJvbCA9IFtcXHB7R3JhcGhlbWVfQ2x1c3Rlcl9CcmVhayA9IENvbnRyb2x9XTsi
CiAgICAgICAgICIkVm9pY2VNYXJrcyA9IFtcXHVGRjlFXFx1RkY5Rl07IiAgLy8gSmFwYW5lc2Ug
aGFsZi13aWR0aCBrYXRha2FuYSB2b2ljZWQgbWFya3MKLSAgICAgICAgIiRFeHRlbmQgID0gW1xc
cHtHcmFwaGVtZV9DbHVzdGVyX0JyZWFrID0gRXh0ZW5kfSAkVm9pY2VNYXJrc107IgorICAgICAg
ICAiJEV4dGVuZCAgPSBbXFxwe0dyYXBoZW1lX0NsdXN0ZXJfQnJlYWsgPSBFeHRlbmR9ICRWb2lj
ZU1hcmtzIC0gW1xcdTBFMzAgXFx1MEUzMiBcXHUwRTQ1IFxcdTBFQjAgXFx1MEVCMl1dOyIKICAg
ICAgICAgIiRTcGFjaW5nTWFyayA9IFtbXFxwe0dlbmVyYWxfQ2F0ZWdvcnkgPSBTcGFjaW5nIE1h
cmt9XSAtICRFeHRlbmRdOyIKICAgICAgICAgIiRMICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gTH1dOyIKICAgICAgICAgIiRWICAgICAgID0gW1xccHtHcmFwaGVtZV9DbHVz
dGVyX0JyZWFrID0gVn1dOyIKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ2MDYyKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDctMTcg
IEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yNzM5NgorICAgICAgICBNb3ZpbmcgY3Vyc29yIGluIFRoYWkgdGV4dCBz
b21ldGltZXMganVtcHMgb3ZlciB0d28gY2hhcmFjdGVycworCisgICAgICAgICogZWRpdGluZy90
ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy90ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50Lmh0bWw6
IEFkZGVkLgorCiAyMDA5LTA3LTE3ICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1A
Z21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5
b3V0VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3Iv
dGhhaS1jdXJzb3ItbW92ZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy90ZXh0LWl0ZXJhdG9yL3RoYWktY3Vyc29yLW1vdmVtZW50LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorRURJVElORyBERUxFR0FURTogd2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0
aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdE
aWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgor
RURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hh
bmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJ
TkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZENoYW5nZVNl
bGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZpY2F0aW9uCitFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgorRURJVElORyBERUxFR0FU
RTogd2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90
aWZpY2F0aW9uCitFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KK0VESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNh
dGlvbgorVGVzdCB0aGF0IG1vdmluZyBpbnNlcnRpb24gcG9pbnQgb3ZlciBUaGFpIHRleHQgKHdp
dGhvdXQgbGlnYXR1cmVzKSBhbHdheXMgbW92ZXMgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUuCisK
K1Nob3VsZCBzYXkgUEFTUzoKKworCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Rl
eHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3RleHQtaXRlcmF0b3IvdGhhaS1jdXJzb3ItbW92ZW1lbnQuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvdGV4dC1pdGVyYXRvci90aGFpLWN1
cnNvci1tb3ZlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcu
anMiIGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0
PgorPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
K2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGkiKTsKKyAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIp
KTsKKyAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7
CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7Cit9CisKK2Z1bmN0aW9uIGVkaXRpbmdUZXN0
KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIHZhciB0ZXh0YXJlYSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0Iik7CisgICAgdGV4dGFyZWEuZm9jdXMoKTsK
KworICAgIHZhciBpID0gMTsKKyAgICBmb3IgKDsgaSA8PSB0ZXh0YXJlYS50ZXh0Q29udGVudC5s
ZW5ndGg7ICsraSkgeworICAgICAgICBtb3ZlU2VsZWN0aW9uRm9yd2FyZEJ5Q2hhcmFjdGVyQ29t
bWFuZCgpOworICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbigpLmJhc2VPZmZzZXQgIT0g
aSkgeworICAgICAgICAgICAgbG9nKCJGQUlMOiAiICsgaSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBsb2coIlBBU1MiKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UZXN0IHRoYXQgbW92aW5nIGluc2VydGlvbiBwb2ludCBvdmVyIFRo
YWkgdGV4dCAod2l0aG91dCBsaWdhdHVyZXMpIGFsd2F5cyBtb3ZlcyBvbmUgY2hhcmFjdGVyIGF0
IGEgdGltZS48L3A+Cis8cD5TaG91bGQgc2F5IFBBU1M6PC9wPgorPHRleHRhcmVhIGlkPSJ0ZXN0
IiByb3dzPSIxIiBjb2xzPSI0MCI+4Lit4Lii4Liy4LiB4LmE4Lib4LiE4Lin4Liy4LihPC90ZXh0
YXJlYT4KKzx1bCBpZD0iY29uc29sZSI+PC91bD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3Jp
cHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitydW5FZGl0aW5nVGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="17329"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>