<?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>32905</bug_id>
          
          <creation_ts>2009-12-23 10:35:15 -0800</creation_ts>
          <short_desc>With Pinyin Simplified IM, a wrong character is deleted from google.com suggestion</short_desc>
          <delta_ts>2009-12-23 21:50:11 -0800</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>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://google.com</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>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174605</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-23 10:35:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/7193666&gt;

Steps to reproduce
1. Open www.google.com
2. Choose Pinyin Simplified input method (or ITABC on Leopard)
3. Type h in the search field
4. Press Down key
5. Press delete key

Results: although text caret is at the end of completed text after step 4 (I was getting &quot;hyundai&quot;), the first character (&quot;h&quot;) is deleted in step 5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174618</commentid>
    <comment_count>1</comment_count>
      <attachid>45444</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-23 11:24:33 -0800</bug_when>
    <thetext>Created attachment 45444
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174619</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-23 11:27:47 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45444 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174721</commentid>
    <comment_count>3</comment_count>
      <attachid>45444</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-23 20:30:19 -0800</bug_when>
    <thetext>Comment on attachment 45444
proposed fix

&gt; +        // An open typing command that disagrees about current selection would cause issues with typing later on.
&gt; +        if (m_lastEditCommand &amp;&amp; m_lastEditCommand-&gt;isTypingCommand())
&gt; +            static_cast&lt;TypingCommand*&gt;(m_lastEditCommand.get())-&gt;closeTyping();

I think this needs to check isOpenForMoreTyping before just calling closeTyping. Luckily there is a helper function for this. You should just write:

    TypingCommand::closeTyping(m_lastEditCommand);

The class member function handles the null check too.

r=me if you change it like I suggest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174723</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-23 20:54:10 -0800</bug_when>
    <thetext>&gt; I think this needs to check isOpenForMoreTyping before just calling
&gt; closeTyping.

I wonder why - closeTyping() just sets a boolean member value.

&gt; r=me if you change it like I suggest

I&apos;ll make the change, if only for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174724</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-23 20:56:55 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; I think this needs to check isOpenForMoreTyping before just calling
&gt; &gt; closeTyping.
&gt; 
&gt; I wonder why - closeTyping() just sets a boolean member value.

Guess you&apos;re right. Wonder why TypingCommand::closeTyping bothers to check it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174732</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-23 21:50:11 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/52542&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45444</attachid>
            <date>2009-12-23 11:24:33 -0800</date>
            <delta_ts>2009-12-23 20:30:18 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>CloseTyping.txt</filename>
            <type>text/plain</type>
            <size>4096</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjUyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMDktMTItMjMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyOTA1CisgICAgICAgIFdp
dGggUGlueWluIFNpbXBsaWZpZWQgSU0sIGEgd3JvbmcgY2hhcmFjdGVyIGlzIGRlbGV0ZWQgZnJv
bSBnb29nbGUuY29tIHN1Z2dlc3Rpb24KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9pbnB1dC9zZWxlY3Rpb24tY2hhbmdlLWNsb3Nlcy10eXBpbmcuaHRtbAorCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOiAoV2ViQ29yZTo6RWRpdG9yOjpjb25maXJtQ29tcG9zaXRp
b24pOiBJZiB0aGlzIGZ1bmN0aW9uIHdhc24ndCBhbGxvd2VkCisgICAgICAgIHRvIGNoYW5nZSBz
ZWxlY3Rpb24sIGl0IG5lZWRzIHRvIGNsb3NlIHRoZSBjdXJyZW50IHR5cGluZyBjb21tYW5kIC0g
b3RoZXJ3aXNlLCBpdHMgaWRlYSBvZgorICAgICAgICBzZWxlY3Rpb24gd291bGQgYmUgdXNlZCBm
b3IgZnV0dXJlIHR5cGluZy4KKwogMjAwOS0xMi0xOCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5h
cm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNTI1MjYpCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5MSw4ICsxMzkxLDEyIEBAIHZvaWQgRWRp
dG9yOjpjb25maXJtQ29tcG9zaXRpb24oY29uc3QgU3QKIAogICAgIGluc2VydFRleHQodGV4dCwg
MCk7CiAKLSAgICBpZiAocHJlc2VydmVTZWxlY3Rpb24pCisgICAgaWYgKHByZXNlcnZlU2VsZWN0
aW9uKSB7CiAgICAgICAgIG1fZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRTZWxlY3Rpb24ob2xkU2Vs
ZWN0aW9uLCBmYWxzZSwgZmFsc2UpOworICAgICAgICAvLyBBbiBvcGVuIHR5cGluZyBjb21tYW5k
IHRoYXQgZGlzYWdyZWVzIGFib3V0IGN1cnJlbnQgc2VsZWN0aW9uIHdvdWxkIGNhdXNlIGlzc3Vl
cyB3aXRoIHR5cGluZyBsYXRlciBvbi4KKyAgICAgICAgaWYgKG1fbGFzdEVkaXRDb21tYW5kICYm
IG1fbGFzdEVkaXRDb21tYW5kLT5pc1R5cGluZ0NvbW1hbmQoKSkKKyAgICAgICAgICAgIHN0YXRp
Y19jYXN0PFR5cGluZ0NvbW1hbmQqPihtX2xhc3RFZGl0Q29tbWFuZC5nZXQoKSktPmNsb3NlVHlw
aW5nKCk7CisgICAgfQogCiAgICAgc2V0SWdub3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2Uo
ZmFsc2UpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTI1MjYpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0xMi0yMyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzI5MDUKKyAgICAgICAgV2l0aCBQaW55aW4gU2ltcGxpZmllZCBJTSwgYSB3cm9uZyBj
aGFyYWN0ZXIgaXMgZGVsZXRlZCBmcm9tIGdvb2dsZS5jb20gc3VnZ2VzdGlvbgorCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvc2VsZWN0aW9uLWNoYW5nZS1jbG9zZXMtdHlw
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcv
aW5wdXQvc2VsZWN0aW9uLWNoYW5nZS1jbG9zZXMtdHlwaW5nLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTEyLTE4ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2lucHV0L3NlbGVjdGlvbi1jaGFuZ2UtY2xvc2VzLXR5cGluZy1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcv
aW5wdXQvc2VsZWN0aW9uLWNoYW5nZS1jbG9zZXMtdHlwaW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L3NlbGVjdGlv
bi1jaGFuZ2UtY2xvc2VzLXR5cGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNSBAQAorVGVzdCBmb3IgYnVnIDMyOTA1OiBXaXRoIFBpbnlpbiBTaW1wbGlmaWVkIElNLCBh
IHdyb25nIGNoYXJhY3RlciBpcyBkZWxldGVkIGZyb20gZ29vZ2xlLmNvbSBzdWdnZXN0aW9uLgor
CitTaG91bGQgc2F5IFBBU1M6IFBBU1MKKworCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZWRpdGluZy9pbnB1dC9zZWxlY3Rpb24tY2hhbmdlLWNsb3Nlcy10eXBpbmcuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9zZWxlY3Rp
b24tY2hhbmdlLWNsb3Nlcy10eXBpbmcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L3NlbGVjdGlvbi1jaGFuZ2UtY2xvc2VzLXR5cGlu
Zy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxib2R5PgorPHA+
VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMyOTA1Ij5idWcgMzI5MDU8L2E+OgorV2l0aCBQaW55aW4gU2ltcGxpZmllZCBJTSwgYSB3cm9u
ZyBjaGFyYWN0ZXIgaXMgZGVsZXRlZCBmcm9tIGdvb2dsZS5jb20gc3VnZ2VzdGlvbi48L3A+Cis8
cD5TaG91bGQgc2F5IFBBU1M6IDwvcD4KKzxpbnB1dCBpZD0idGVzdCI+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2YXIg
dGVzdElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKKyAgICB0ZXN0SW5w
dXQuZm9jdXMoKTsKKworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNl
dE1hcmtlZFRleHQoIlAiLCAxLCAwKTsKKyAgICAgICAgICAgIHRlc3RJbnB1dC52YWx1ZT0iUEFT
IjsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlMiKTsKKworICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKVsxXS5pbm5lckhUTUwgKz0gdGVzdElu
cHV0LnZhbHVlOworCisgICAgICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICBkb2N1bWVu
dC53cml0ZSgiRXhjZXB0aW9uOiAiICsgZXguZGVzY3JpcHRpb24pOworICAgICAgICB9CisgICAg
fSBlbHNlCisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRlc3Qgb25seSBydW5zIGluIGF1
dG9tYXRlZCBtb2RlPGJyPiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="27490"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>