<?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>45539</bug_id>
          
          <creation_ts>2010-09-10 07:40:39 -0700</creation_ts>
          <short_desc>[Qt] selected text gets deleted when qgraphicswebview losts focus</short_desc>
          <delta_ts>2010-09-16 10:26:06 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yi Shen">max.hong.shen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ademar</cc>
    
    <cc>commit-queue</cc>
    
    <cc>robert</cc>
    
    <cc>suresh.voruganti</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>277183</commentid>
    <comment_count>0</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-09-10 07:40:39 -0700</bug_when>
    <thetext>Precondition: using qgraphicswebview

Steps to reproduce:
1. open a page that has a textarea field, and type some characters in that field  (e.g.  I typed &quot;abcdefg&quot; in the textarea)
2. use your mouse to select (highlight) some words (characters) (e.g. I selected &quot;defg&quot;)
3. click on other qgraphics ui component (e.g. url bar) which removes the focus from qgraphicswebview

Actual Result:
All the selected/highlight words (characters) get deleted (e.g. the &quot;defg&quot; get deleted and only &quot;abcd&quot; left in the textarea)

Reason:
When focus changed, qgraphicssence sends out an inputmethodevent with empty preedit string and empty QInputMethodEvent::Attribute to qgrapchiswebview, which finally be delivered to the QWebPage::inputMethodEvent(QInputMethodEvent *ev). And eventually, an empty preedit string is passed to WebCore::Editor::setComposition(...) which deletes all the selected text.

Fix proposal:
Check the preedit string before passing it to the WebCore::Editor::setComposition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277189</commentid>
    <comment_count>1</comment_count>
      <attachid>67183</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-09-10 08:01:22 -0700</bug_when>
    <thetext>Created attachment 67183
proposal fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277229</commentid>
    <comment_count>2</comment_count>
      <attachid>67183</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-10 09:01:53 -0700</bug_when>
    <thetext>Comment on attachment 67183
proposal fix

&gt; +            if (!ev-&gt;preeditString().isEmpty())

Should be &quot;if (!preedit.isEmpty())&quot;

Change looks reasonable, but it needs an autotest (see WebKit/qt/tests/)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277233</commentid>
    <comment_count>3</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-09-10 09:05:10 -0700</bug_when>
    <thetext>yes, you are right. Thanks for reviewing, I will change it.

(In reply to comment #2)
&gt; (From update of attachment 67183 [details])
&gt; &gt; +            if (!ev-&gt;preeditString().isEmpty())
&gt; 
&gt; Should be &quot;if (!preedit.isEmpty())&quot;
&gt; 
&gt; Change looks reasonable, but it needs an autotest (see WebKit/qt/tests/)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277422</commentid>
    <comment_count>4</comment_count>
      <attachid>67236</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-09-10 14:15:50 -0700</bug_when>
    <thetext>Created attachment 67236
patch with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277679</commentid>
    <comment_count>5</comment_count>
      <attachid>67236</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-11 00:07:33 -0700</bug_when>
    <thetext>Comment on attachment 67236
patch with test case

Clearing flags on attachment: 67236

Committed r67289: &lt;http://trac.webkit.org/changeset/67289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277680</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-11 00:07:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280152</commentid>
    <comment_count>7</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2010-09-16 09:43:32 -0700</bug_when>
    <thetext>Ademar, can you cherry pick the fix for QtWebkit 2.1?

This fix is required for implementation of some features from browser team.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280184</commentid>
    <comment_count>8</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-16 10:20:21 -0700</bug_when>
    <thetext>Revision r67289 cherry-picked into qtwebkit-2.1 with commit 50c6993 &lt;http://gitorious.org/webkit/qtwebkit/commit/50c6993&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280190</commentid>
    <comment_count>9</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-09-16 10:26:06 -0700</bug_when>
    <thetext>Actually last comment should be:

Revision r67289 cherry-picked into qtwebkit-2.1 with commit b422ce0 &lt;http://gitorious.org/webkit/qtwebkit/commit/b422ce0&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67183</attachid>
            <date>2010-09-10 08:01:22 -0700</date>
            <delta_ts>2010-09-10 14:15:50 -0700</delta_ts>
            <desc>proposal fix</desc>
            <filename>45539.patch</filename>
            <type>text/plain</type>
            <size>1203</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjcxOTkpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDktMTAgIHlpIHNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gc2VsZWN0ZWQgdGV4dCBnZXRzIGRlbGV0ZWQgd2hlbiBxZ3JhcGhpY3N3ZWJ2aWV3IGxv
c3RzIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTUzOQorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdl
UHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudCk6CisKIDIwMTAtMDktMDggIERhcmluIEFkbGVyICA8
ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNjcxOTQpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIwMSw3ICsxMjAxLDggQEAgdm9pZCBRV2ViUGFnZVBy
aXZhdGU6OmlucHV0TWV0aG9kRXZlbnQoUQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoc2VsZWN0aW9uLmxlbmd0aCA8IDApID8gc2VsZWN0aW9uLnN0YXJ0IDogc2VsZWN0aW9u
LnN0YXJ0ICsgc2VsZWN0aW9uLmxlbmd0aCk7CiAgICAgICAgIH0gZWxzZQogI2VuZGlmCi0gICAg
ICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9uKHByZWVkaXQsIHVuZGVybGluZXMsIHByZWVk
aXQubGVuZ3RoKCksIDApOworICAgICAgICAgICAgaWYgKCFldi0+cHJlZWRpdFN0cmluZygpLmlz
RW1wdHkoKSkKKyAgICAgICAgICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9uKHByZWVkaXQs
IHVuZGVybGluZXMsIHByZWVkaXQubGVuZ3RoKCksIDApOwogICAgIH0KIAogICAgIGV2LT5hY2Nl
cHQoKTsK
</data>
<flag name="review"
          id="56419"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67236</attachid>
            <date>2010-09-10 14:15:50 -0700</date>
            <delta_ts>2010-09-11 00:07:33 -0700</delta_ts>
            <desc>patch with test case</desc>
            <filename>45539.patch</filename>
            <type>text/plain</type>
            <size>2454</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNjcyMzEpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMTAgIHlpIHNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gc2VsZWN0ZWQgdGV4dCBnZXRzIGRlbGV0ZWQgd2hlbiBxZ3JhcGhpY3N3ZWJ2aWV3IGxv
c3RzIGZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTUzOQorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdl
UHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudCk6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6aW5wdXRNZXRob2RzKToKKwog
MjAxMC0wOS0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDY3MjIz
KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMDEs
NyArMTIwMSw4IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhvZEV2ZW50KFEKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGlvbi5sZW5ndGggPCAwKSA/
IHNlbGVjdGlvbi5zdGFydCA6IHNlbGVjdGlvbi5zdGFydCArIHNlbGVjdGlvbi5sZW5ndGgpOwog
ICAgICAgICB9IGVsc2UKICNlbmRpZgotICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlv
bihwcmVlZGl0LCB1bmRlcmxpbmVzLCBwcmVlZGl0Lmxlbmd0aCgpLCAwKTsKKyAgICAgICAgICAg
IGlmICghcHJlZWRpdC5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgZWRpdG9yLT5zZXRDb21w
b3NpdGlvbihwcmVlZGl0LCB1bmRlcmxpbmVzLCBwcmVlZGl0Lmxlbmd0aCgpLCAwKTsKICAgICB9
CiAKICAgICBldi0+YWNjZXB0KCk7CkluZGV4OiBXZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNjcyMjMpCisrKyBXZWJLaXQvcXQvdGVzdHMvcXdlYnBh
Z2UvdHN0X3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2MSw2ICsxNjYxLDIyIEBA
IHZvaWQgdHN0X1FXZWJQYWdlOjppbnB1dE1ldGhvZHMoKQogICAgIFFWRVJJRlkoIXZpZXdFdmVu
dFNweS5jb250YWlucyhRRXZlbnQ6OlJlcXVlc3RTb2Z0d2FyZUlucHV0UGFuZWwpKTsKICNlbmRp
ZgogCisjaWYgUVRfVkVSU0lPTiA+PSAweDA0MDYwMAorICAgIC8vU1RBUlQgLSBUZXN0IGZvciBz
ZW5kaW5nIGVtcHR5IFFJbnB1dE1ldGhvZEV2ZW50CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNl
dEh0bWwoIjxodG1sPjxib2R5PiIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dDMnIHZhbHVlPSdRdFdlYktp
dDInLz4iIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjwv
Ym9keT48L2h0bWw+Iik7CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPmV2YWx1YXRlSmF2YVNjcmlw
dCgidmFyIGlucHV0RWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0MycpOyBpbnB1
dEVsZS5mb2N1cygpOyBpbnB1dEVsZS5zZWxlY3QoKTsiKTsKKworICAgIC8vU2VuZCBlbXB0eSBR
SW5wdXRNZXRob2RFdmVudAorICAgIFFJbnB1dE1ldGhvZEV2ZW50IGVtcHR5RXZlbnQ7CisgICAg
cGFnZS0+ZXZlbnQoJmVtcHR5RXZlbnQpOworCisgICAgUVN0cmluZyBpbnB1dFZhbHVlID0gcGFn
ZS0+bWFpbkZyYW1lKCktPmV2YWx1YXRlSmF2YVNjcmlwdCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lucHV0MycpLnZhbHVlIikudG9TdHJpbmcoKTsKKyAgICBRQ09NUEFSRShpbnB1dFZhbHVl
LCBRU3RyaW5nKCJRdFdlYktpdDIiKSk7CisgICAgLy9FTkQgLSBUZXN0IGZvciBzZW5kaW5nIGVt
cHR5IFFJbnB1dE1ldGhvZEV2ZW50CisjZW5kaWYKKwogICAgIGRlbGV0ZSBjb250YWluZXI7CiB9
CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>