<?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>28153</bug_id>
          
          <creation_ts>2009-08-10 10:35:04 -0700</creation_ts>
          <short_desc>[GTK] can&apos;t middle-button paste within a single window</short_desc>
          <delta_ts>2009-12-19 10:38:12 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>31711</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan Winship">danw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alex</cc>
    
    <cc>christian</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>pachoramos1</cc>
    
    <cc>reinouts</cc>
    
    <cc>tony</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138712</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Winship">danw</who>
    <bug_when>2009-08-10 10:35:04 -0700</bug_when>
    <thetext>bug 25685 fixed middle-button paste between apps and between windows, but you still can&apos;t middle-button paste within a single window; as soon as the textarea you&apos;re trying to paste into gets focused, the text you had previously selected loses the selection, and so there&apos;s no longer anything to paste.

In other apps, merely focusing a textarea does not affect the existing selection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143059</commentid>
    <comment_count>1</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-08-26 22:47:26 -0700</bug_when>
    <thetext>*** Bug 27838 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156831</commentid>
    <comment_count>2</comment_count>
      <attachid>41645</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-10-22 00:52:42 -0700</bug_when>
    <thetext>Created attachment 41645
Proposed patch

This is a first proposal to fix this issue. Now we store a reference to the range instead of requesting it every time, and we do not release it until the clipboard is requested.

Consider applying this other simple patch for the .h file also: https://bugs.webkit.org/show_bug.cgi?id=30664</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156943</commentid>
    <comment_count>3</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2009-10-22 11:11:46 -0700</bug_when>
    <thetext>Is it not possible to write a test for this?  It would seem you could add some sort of middle-click event to layoutTestController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156944</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-22 11:16:23 -0700</bug_when>
    <thetext>eventSender.mouseDown takes a button argument if that&apos;s helpful.  I think mouseDown(1) is the middle button.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157443</commentid>
    <comment_count>5</comment_count>
      <attachid>41645</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-10-24 04:08:08 -0700</bug_when>
    <thetext>Comment on attachment 41645
Proposed patch

Patch looks fine but can we please add a test?

r- for the lack of test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>157742</commentid>
    <comment_count>6</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-10-26 06:03:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; eventSender.mouseDown takes a button argument if that&apos;s helpful.  I think
&gt; mouseDown(1) is the middle button.

Actually we added support for that parameter some weeks ago:

    2009-10-08  Alejandro G. Castro  &lt;alex@igalia.com&gt;

            Reviewed by Xan Lopez.

            [GTK] Added support for a parameter setting the button that was
            pressed in the mouseDown function.
            https://bugs.webkit.org/show_bug.cgi?id=30220

            * WebKitTools/DumpRenderTree/gtk/EventSender.cpp:

I&apos;ll add that test to the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165265</commentid>
    <comment_count>7</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-11-20 03:30:25 -0800</bug_when>
    <thetext>Checking the test I found another issue that we could consider before adding this patch, it is reported in bug 31711.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165317</commentid>
    <comment_count>8</comment_count>
      <attachid>43582</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-11-20 08:43:40 -0800</bug_when>
    <thetext>Created attachment 43582
Patch proposed with test

This patch includes the test for the solution proposed, but it will not work until we solve the bug 31711. Until that moment the test requires this patch to work properly, check the other bug for more information about the issue:

index 8783973..2ff65cb 100644
--- a/LayoutTests/platform/gtk/editing/pasteboard/middle-button-paste.html
+++ b/LayoutTests/platform/gtk/editing/pasteboard/middle-button-paste.html
@@ -20,8 +20,8 @@ function runTest()
     var y = target.offsetParent.offsetTop + target.offsetTop +
         target.offsetHeight / 2;

-    eventSender.mouseMoveTo(x, y);
     eventSender.mouseDown();
+    eventSender.mouseMoveTo(x, y);
     eventSender.mouseMoveTo(x + 50, y);
     eventSender.mouseUp();
     eventSender.mouseMoveTo(x + 100, y);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166817</commentid>
    <comment_count>9</comment_count>
      <attachid>43582</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-26 21:11:42 -0800</bug_when>
    <thetext>Comment on attachment 43582
Patch proposed with test

The test should be dumpAsText().
http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167967</commentid>
    <comment_count>10</comment_count>
      <attachid>44143</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-12-02 05:37:47 -0800</bug_when>
    <thetext>Created attachment 44143
New patch proposal

I&apos;ve used dumpAsText for the test and I&apos;ve added a new condition to control situations where range could be 0 in the get_contents callback because toNormalizedRange can return 0.

I&apos;m not adding the review request until the drag bug 31711 is fixed because the test will fail if we upload it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173508</commentid>
    <comment_count>11</comment_count>
      <attachid>45233</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-12-19 04:14:27 -0800</bug_when>
    <thetext>Created attachment 45233
Proposed patch

I&apos;ve added the workaround to the test, I do not think makes sense to wait for that fix and the test is not incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173510</commentid>
    <comment_count>12</comment_count>
      <attachid>45233</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-19 04:46:00 -0800</bug_when>
    <thetext>Comment on attachment 45233
Proposed patch

&gt;+    EditorClient* client = reinterpret_cast&lt;EditorClient*&gt;(data);

Isn&apos;t static_cast enough to go from void* to EditorClient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173511</commentid>
    <comment_count>13</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-12-19 04:58:54 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 45233 [details])
&gt; &gt;+    EditorClient* client = reinterpret_cast&lt;EditorClient*&gt;(data);
&gt; 
&gt; Isn&apos;t static_cast enough to go from void* to EditorClient?

Yep, I&apos;ve checked it, reviewing the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173512</commentid>
    <comment_count>14</comment_count>
      <attachid>45234</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2009-12-19 05:01:26 -0800</bug_when>
    <thetext>Created attachment 45234
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173532</commentid>
    <comment_count>15</comment_count>
      <attachid>45234</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-12-19 10:12:52 -0800</bug_when>
    <thetext>Comment on attachment 45234
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173547</commentid>
    <comment_count>16</comment_count>
      <attachid>45234</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-19 10:38:03 -0800</bug_when>
    <thetext>Comment on attachment 45234
Proposed patch

Clearing flags on attachment: 45234

Committed r52389: &lt;http://trac.webkit.org/changeset/52389&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173548</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-19 10:38:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41645</attachid>
            <date>2009-10-22 00:52:42 -0700</date>
            <delta_ts>2009-11-20 08:43:40 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>paste_middle_button.patch</filename>
            <type>text/plain</type>
            <size>4980</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggYzk3OGNmNC4uMTJjZmJlYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMC0yMiAg
QWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlZCB0aGUgcHJvYmxlbSB3aGVuIHBh
c3RpbmcgaW4gdGhlIHNhbWUgd2luZG93IHdpdGggdGhlCisgICAgICAgIG1pZGRsZS1idXR0b24s
IG5vdyB3ZSBzdG9yZSBhIHJlZmVyZW5jZSB0byB0aGUgcmFuZ2UgaW5zdGVhZCBvZgorICAgICAg
ICByZXF1ZXN0aW5nIGl0IGV2ZXJ5IHRpbWUsIGFuZCB3ZSBkbyBub3QgcmVsZWFzZSBpdCB1bnRp
bCB0aGUKKyAgICAgICAgY2xpcGJvYXJkIGlzIHJlcXVlc3RlZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MTUzCisKKyAgICAgICAgKiBXZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKwogMjAwOS0xMC0yMCAgRnVt
aXRvc2hpIFVrYWkgIDx1a2FpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAppbmRleCA2ZWM2YmFmLi42M2U4ODYyIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0xODUsMjkgKzE4NSwyNSBAQCB2b2lkIEVkaXRv
ckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCi1zdGF0aWMgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2Fy
ZCogY2xpcGJvYXJkLCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5m
bywgZ3BvaW50ZXIgZGF0YSkKK3ZvaWQgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYihHdGtDbGlw
Ym9hcmQqIGNsaXBib2FyZCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uX2RhdGEsIGd1aW50
IGluZm8sIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViS2l0V2ViVmlldyo+KGRhdGEpOwotICAgIEZyYW1lKiBmcmFtZSA9
IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsK
LSAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigp
LT50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIEVkaXRvckNsaWVudCogY2xpZW50ID0gcmVpbnRl
cnByZXRfY2FzdDxFZGl0b3JDbGllbnQqPihkYXRhKTsKIAogICAgIGlmIChzdGF0aWNfY2FzdDxn
aW50PihpbmZvKSA9PSBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VUX0lORk9fSFRNTCkgewotICAgICAg
ICBTdHJpbmcgbWFya3VwID0gY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UuZ2V0KCksIDAsIEFu
bm90YXRlRm9ySW50ZXJjaGFuZ2UpOworICAgICAgICBTdHJpbmcgbWFya3VwID0gY3JlYXRlTWFy
a3VwKGNsaWVudC0+bV9yYW5nZS5nZXQoKSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSk7CiAg
ICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2VsZWN0aW9uX2RhdGEsIHNlbGVjdGlvbl9k
YXRhLT50YXJnZXQsIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBndWNoYXIqPihtYXJrdXAudXRmOCgpLmRhdGEoKSksIG1hcmt1cC51dGY4
KCkubGVuZ3RoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyB0ZXh0ID0gc2VsZWN0
ZWRSYW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgdGV4dCA9IGNsaWVudC0+bV9yYW5nZS0+
dGV4dCgpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0X3RleHQoc2VsZWN0aW9uX2Rh
dGEsIHRleHQudXRmOCgpLmRhdGEoKSwgdGV4dC51dGY4KCkubGVuZ3RoKCkpOwogICAgIH0KIH0K
IAotc3RhdGljIHZvaWQgY2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCog
Y2xpcGJvYXJkLCBncG9pbnRlciBkYXRhKQordm9pZCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNf
Y2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIGdwb2ludGVyIGRhdGEpCiB7Ci0gICAgV2ViS2l0
V2ViVmlldyogd2ViVmlldyA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViS2l0V2ViVmlldyo+KGRhdGEp
OwotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2ViVmlldyktPmZvY3VzQ29udHJvbGxlcigpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBFZGl0b3JDbGllbnQqIGNsaWVudCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8RWRpdG9yQ2xpZW50Kj4oZGF0YSk7CiAKLSAgICAvLyBDb2xsYXBzZSB0aGUgc2Vs
ZWN0aW9uIHdpdGhvdXQgY2xlYXJpbmcgaXQKLSAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldEJh
c2UoZnJhbWUtPnNlbGVjdGlvbigpLT5leHRlbnQoKSwgZnJhbWUtPnNlbGVjdGlvbigpLT5hZmZp
bml0eSgpKTsKKyAgICBjbGllbnQtPm1fcmFuZ2UgPSAwOwogfQogCiB2b2lkIEVkaXRvckNsaWVu
dDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbigpCkBAIC0yMjYsMTEgKzIyMiwxMSBAQCB2b2lk
IEVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbigpCiAgICAgICAgIEd0a1Rh
cmdldExpc3QqIHRhcmdldExpc3QgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvcHlfdGFyZ2V0X2xp
c3QobV93ZWJWaWV3KTsKICAgICAgICAgZ2ludCB0YXJnZXRDb3VudDsKICAgICAgICAgR3RrVGFy
Z2V0RW50cnkqIHRhcmdldHMgPSBndGtfdGFyZ2V0X3RhYmxlX25ld19mcm9tX2xpc3QodGFyZ2V0
TGlzdCwgJnRhcmdldENvdW50KTsKLSAgICAgICAgZ3RrX2NsaXBib2FyZF9zZXRfd2l0aF9vd25l
cihjbGlwYm9hcmQsIHRhcmdldHMsIHRhcmdldENvdW50LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsaXBib2FyZF9nZXRfY29udGVudHNfY2IsIGNsaXBib2FyZF9jbGVh
cl9jb250ZW50c19jYiwgR19PQkpFQ1QobV93ZWJWaWV3KSk7CisgICAgICAgIGd0a19jbGlwYm9h
cmRfc2V0X3dpdGhfZGF0YShjbGlwYm9hcmQsIHRhcmdldHMsIHRhcmdldENvdW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYiwg
Y2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiLCB0aGlzKTsKKyAgICAgICAgbV9yYW5nZSA9IHRh
cmdldEZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICAgICAgZ3Rr
X3RhcmdldF90YWJsZV9mcmVlKHRhcmdldHMsIHRhcmdldENvdW50KTsKLSAgICB9IGVsc2UgaWYg
KGd0a19jbGlwYm9hcmRfZ2V0X293bmVyKGNsaXBib2FyZCkgPT0gR19PQkpFQ1QobV93ZWJWaWV3
KSkKLSAgICAgICAgZ3RrX2NsaXBib2FyZF9jbGVhcihjbGlwYm9hcmQpOworICAgIH0KIAogICAg
IGlmICghdGFyZ2V0RnJhbWUtPmVkaXRvcigpLT5oYXNDb21wb3NpdGlvbigpKQogICAgICAgICBy
ZXR1cm47CkBAIC01NTEsNiArNTQ3LDcgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OmhhbmRsZUlucHV0
TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KiBldmVudCkKIEVkaXRvckNsaWVudDo6RWRpdG9y
Q2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgOiBtX2lzSW5SZWRvKGZhbHNlKQog
ICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCisgICAgLCBtX3JhbmdlKDApCiB7CiAgICAgV2ViS2l0
V2ViVmlld1ByaXZhdGUqIHByaXYgPSBtX3dlYlZpZXctPnByaXY7CiAgICAgZ19zaWduYWxfY29u
bmVjdChwcml2LT5pbUNvbnRleHQsICJjb21taXQiLCBHX0NBTExCQUNLKGltQ29udGV4dENvbW1p
dHRlZCksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmgKaW5kZXggNjgwMzRjZi4uNjIxY2Q5ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KIAog
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0V2ViVmlldzsKIApAQCAtMTE5LDYg
KzEyMCwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCBlbmFibGVkKTsKIAogICAgICAgICBXZWJLaXRXZWJWaWV3KiBt
X3dlYlZpZXc7CisKKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+
IG1fcmFuZ2U7CisKKyAgICAgICAgZnJpZW5kIHZvaWQgY2xpcGJvYXJkX2dldF9jb250ZW50c19j
YihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uX2Rh
dGEsIGd1aW50IGluZm8sIGdwb2ludGVyIGRhdGEpOworICAgICAgICBmcmllbmQgdm9pZCBjbGlw
Ym9hcmRfY2xlYXJfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIGdwb2ludGVy
IGRhdGEpOwogICAgIH07CiB9CiAK
</data>
<flag name="review"
          id="23072"
          type_id="1"
          status="-"
          setter="jmalonzo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43582</attachid>
            <date>2009-11-20 08:43:40 -0800</date>
            <delta_ts>2009-12-02 05:37:47 -0800</delta_ts>
            <desc>Patch proposed with test</desc>
            <filename>middle-button-paste.patch</filename>
            <type>text/plain</type>
            <size>7730</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NTBiZmE5Li5kMDExZWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTEt
MjAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE1MworICAgICAgICBjYW4ndCBtaWRkbGUt
YnV0dG9uIHBhc3RlIHdpdGhpbiBhIHNpbmdsZSB3aW5kb3cKKworICAgICAgICAqIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkCisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0bWw6IEFkZWVkCisKIDIwMDkt
MTEtMjAgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFzdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRk
bGUtYnV0dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5mOWIzODVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEzIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDgwMHgyMAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAxMDB4MjAKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAxMDA6ICJTZWxlY3Qg
bWUsIHNlbGVjIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEwMCwwKSBzaXplIDU0
eDIwCisgICAgICAgICAgdGV4dCBydW4gYXQgKDEwMCwwKSB3aWR0aCA1NDogIlNlbGVjdCBtIgor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1NCwwKSBzaXplIDkzeDIwCisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDE1NCwwKSB3aWR0aCA5MzogInQgbWUsIHNlbGVjdCBtZSIKK2NhcmV0
OiBwb3NpdGlvbiA4IG9mIGNoaWxkIDEgeyN0ZXh0fSBvZiBjaGlsZCAxIHtESVZ9IG9mIGNoaWxk
IDEge0JPRFl9IG9mIGNoaWxkIDAge0hUTUx9IG9mIGRvY3VtZW50CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFz
dGUuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlk
ZGxlLWJ1dHRvbi1wYXN0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
Ljg3ODM5NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRp
dGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFzdGUuaHRtbApAQCAtMCwwICsxLDM4IEBA
Cis8aHRtbD4KKzxoZWFkPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wRWRpdGluZ0NhbGxiYWNrcygpOworPC9zY3JpcHQ+CisKKzxzdHlsZT4KK2JvZHkgeyBtYXJn
aW46IDA7IHBhZGRpbmc6IDAgfQorPC9zdHlsZT4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKTsKKworICAgIHZhciB4ID0gdGFyZ2V0Lm9mZnNldFBh
cmVudC5vZmZzZXRMZWZ0ICsgdGFyZ2V0Lm9mZnNldExlZnQ7CisgICAgdmFyIHkgPSB0YXJnZXQu
b2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRUb3AgKworICAgICAgICB0YXJn
ZXQub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHggKyA1MCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHggKyAxMDAsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigx
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKDEpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9InRleHQiIGNvbnRlbnRlZGl0YWJs
ZT5TZWxlY3QgbWUsIHNlbGVjdCBtZSwgc2VsZWN0IG1lPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CisKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggZmUzM2RmMS4uOGQ2ODU2MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMS0x
OCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlZCB0aGUgcHJvYmxlbSB3aGVu
IHBhc3RpbmcgaW4gdGhlIHNhbWUgd2luZG93IHdpdGggdGhlCisgICAgICAgIG1pZGRsZS1idXR0
b24sIG5vdyB3ZSBzdG9yZSBhIHJlZmVyZW5jZSB0byB0aGUgcmFuZ2UgaW5zdGVhZCBvZgorICAg
ICAgICByZXF1ZXN0aW5nIGl0IGV2ZXJ5IHRpbWUsIGFuZCB3ZSBkbyBub3QgcmVsZWFzZSBpdCB1
bnRpbCB0aGUKKyAgICAgICAgY2xpcGJvYXJkIGlzIHJlcXVlc3RlZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MTUzCisKKyAgICAgICAgKiBXZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKwogMjAwOS0xMS0xOSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggNmVjNmJhZi4uNjNlODg2MiAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAtMTg1LDI5ICsxODUs
MjUgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRDb250ZW50cygpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgY2xpcGJvYXJkX2dldF9jb250ZW50
c19jYihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9u
X2RhdGEsIGd1aW50IGluZm8sIGdwb2ludGVyIGRhdGEpCit2b2lkIGNsaXBib2FyZF9nZXRfY29u
dGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEd0a1NlbGVjdGlvbkRhdGEqIHNlbGVj
dGlvbl9kYXRhLCBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKQogewotICAgIFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcgPSByZWludGVycHJldF9jYXN0PFdlYktpdFdlYlZpZXcqPihkYXRhKTsKLSAg
ICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNl
ZE9yTWFpbkZyYW1lKCk7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IGZy
YW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBFZGl0b3JDbGllbnQq
IGNsaWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RWRpdG9yQ2xpZW50Kj4oZGF0YSk7CiAKICAgICBp
ZiAoc3RhdGljX2Nhc3Q8Z2ludD4oaW5mbykgPT0gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZP
X0hUTUwpIHsKLSAgICAgICAgU3RyaW5nIG1hcmt1cCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJh
bmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlKTsKKyAgICAgICAgU3RyaW5nIG1h
cmt1cCA9IGNyZWF0ZU1hcmt1cChjbGllbnQtPm1fcmFuZ2UuZ2V0KCksIDAsIEFubm90YXRlRm9y
SW50ZXJjaGFuZ2UpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbl9k
YXRhLCBzZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4obWFya3VwLnV0ZjgoKS5kYXRh
KCkpLCBtYXJrdXAudXRmOCgpLmxlbmd0aCgpKTsKICAgICB9IGVsc2UgewotICAgICAgICBTdHJp
bmcgdGV4dCA9IHNlbGVjdGVkUmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBj
bGllbnQtPm1fcmFuZ2UtPnRleHQoKTsKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldF90
ZXh0KHNlbGVjdGlvbl9kYXRhLCB0ZXh0LnV0ZjgoKS5kYXRhKCksIHRleHQudXRmOCgpLmxlbmd0
aCgpKTsKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19j
YihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSkKK3ZvaWQgY2xpcGJvYXJk
X2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBncG9pbnRlciBkYXRh
KQogewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSByZWludGVycHJldF9jYXN0PFdlYktp
dFdlYlZpZXcqPihkYXRhKTsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRWRpdG9yQ2xpZW50KiBj
bGllbnQgPSByZWludGVycHJldF9jYXN0PEVkaXRvckNsaWVudCo+KGRhdGEpOwogCi0gICAgLy8g
Q29sbGFwc2UgdGhlIHNlbGVjdGlvbiB3aXRob3V0IGNsZWFyaW5nIGl0Ci0gICAgZnJhbWUtPnNl
bGVjdGlvbigpLT5zZXRCYXNlKGZyYW1lLT5zZWxlY3Rpb24oKS0+ZXh0ZW50KCksIGZyYW1lLT5z
ZWxlY3Rpb24oKS0+YWZmaW5pdHkoKSk7CisgICAgY2xpZW50LT5tX3JhbmdlID0gMDsKIH0KIAog
dm9pZCBFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oKQpAQCAtMjI2LDEx
ICsyMjIsMTEgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24o
KQogICAgICAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0ID0gd2Via2l0X3dlYl92aWV3X2dl
dF9jb3B5X3RhcmdldF9saXN0KG1fd2ViVmlldyk7CiAgICAgICAgIGdpbnQgdGFyZ2V0Q291bnQ7
CiAgICAgICAgIEd0a1RhcmdldEVudHJ5KiB0YXJnZXRzID0gZ3RrX3RhcmdldF90YWJsZV9uZXdf
ZnJvbV9saXN0KHRhcmdldExpc3QsICZ0YXJnZXRDb3VudCk7Ci0gICAgICAgIGd0a19jbGlwYm9h
cmRfc2V0X3dpdGhfb3duZXIoY2xpcGJvYXJkLCB0YXJnZXRzLCB0YXJnZXRDb3VudCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2Ni
LCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IsIEdfT0JKRUNUKG1fd2ViVmlldykpOworICAg
ICAgICBndGtfY2xpcGJvYXJkX3NldF93aXRoX2RhdGEoY2xpcGJvYXJkLCB0YXJnZXRzLCB0YXJn
ZXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZF9n
ZXRfY29udGVudHNfY2IsIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYiwgdGhpcyk7CisgICAg
ICAgIG1fcmFuZ2UgPSB0YXJnZXRGcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdl
KCk7CiAgICAgICAgIGd0a190YXJnZXRfdGFibGVfZnJlZSh0YXJnZXRzLCB0YXJnZXRDb3VudCk7
Ci0gICAgfSBlbHNlIGlmIChndGtfY2xpcGJvYXJkX2dldF9vd25lcihjbGlwYm9hcmQpID09IEdf
T0JKRUNUKG1fd2ViVmlldykpCi0gICAgICAgIGd0a19jbGlwYm9hcmRfY2xlYXIoY2xpcGJvYXJk
KTsKKyAgICB9CiAKICAgICBpZiAoIXRhcmdldEZyYW1lLT5lZGl0b3IoKS0+aGFzQ29tcG9zaXRp
b24oKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUxLDYgKzU0Nyw3IEBAIHZvaWQgRWRpdG9yQ2xp
ZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRFdmVudCogZXZlbnQpCiBFZGl0
b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIDogbV9p
c0luUmVkbyhmYWxzZSkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQorICAgICwgbV9yYW5nZSgw
KQogewogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gbV93ZWJWaWV3LT5wcml2Owog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+aW1Db250ZXh0LCAiY29tbWl0IiwgR19DQUxMQkFD
SyhpbUNvbnRleHRDb21taXR0ZWQpLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDkyOTI2NTEuLjMzZWZhNGQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtMzQsNiArMzQsNyBAQAogCiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRl
IDxndGsvZ3RrLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJWaWV3IFdlYktpdFdlYlZp
ZXc7CiAKQEAgLTEyMCw2ICsxMjEsMTAgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICBwcml2
YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CisgICAgICAgIFJlZlB0cjxX
ZWJDb3JlOjpSYW5nZT4gbV9yYW5nZTsKKworICAgICAgICBmcmllbmQgdm9pZCBjbGlwYm9hcmRf
Z2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHdGtTZWxlY3Rpb25EYXRh
KiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5mbywgZ3BvaW50ZXIgZGF0YSk7CisgICAgICAgIGZy
aWVuZCB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYihHdGtDbGlwYm9hcmQqIGNsaXBi
b2FyZCwgZ3BvaW50ZXIgZGF0YSk7CiAgICAgfTsKIH0KIAo=
</data>
<flag name="review"
          id="25320"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44143</attachid>
            <date>2009-12-02 05:37:47 -0800</date>
            <delta_ts>2009-12-19 04:14:27 -0800</delta_ts>
            <desc>New patch proposal</desc>
            <filename>middle_click.patch</filename>
            <type>text/plain</type>
            <size>7463</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOGJmOTBmLi5mMzdmZWQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MDIgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE1MworICAgICAgICBjYW4ndCBtaWRkbGUt
YnV0dG9uIHBhc3RlIHdpdGhpbiBhIHNpbmdsZSB3aW5kb3cKKworICAgICAgICAqIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkCisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0bWw6IEFkZWVkCisKIDIwMDkt
MTItMDIgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRs
ZS1idXR0b24tcGFzdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjY1N2RkZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFzdGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorU2VsZWN0IG1lLCBzZWxlY1NlbGVjdCBtdCBtZSwgc2VsZWN0IG1lCisK
K1RoZSBvcmlnaW5hbCB0ZXh0IHdhcyAiU2VsZWN0IG1lLCBzZWxlY3QgbWUsIHNlbGVjdCBtZSIs
IGFmdGVyIHNlbGVjdGluZyBhbmQgcGFzdGluZyB0aGUgcmVzdWx0IHNob3VsZCBiZSAiU2VsZWN0
IG1lLCBzZWxlY1NlbGVjdCBtdCBtZSwgc2VsZWN0IG1lIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1i
dXR0b24tcGFzdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Zjgw
ZDYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcv
cGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPGh0
bWw+Cis8aGVhZD4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Cis8L3NjcmlwdD4KKworPHN0eWxlPgorYm9keSB7IG1hcmdpbjogMDsgcGFkZGluZzog
MCB9Cis8L3N0eWxlPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGV4dCIpOworCisgICAgdmFyIHggPSB0YXJnZXQub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQg
KyB0YXJnZXQub2Zmc2V0TGVmdDsKKyAgICB2YXIgeSA9IHRhcmdldC5vZmZzZXRQYXJlbnQub2Zm
c2V0VG9wICsgdGFyZ2V0Lm9mZnNldFRvcCArCisgICAgICAgIHRhcmdldC5vZmZzZXRIZWlnaHQg
LyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCArIDUwLCB5KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCArIDEwMCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKDEpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoMSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGRpdiBpZD0idGV4dCIgY29udGVudGVkaXRhYmxlPlNlbGVjdCBtZSwgc2Vs
ZWN0IG1lLCBzZWxlY3QgbWU8L2Rpdj4KKworPGJyLz4KKzxwPlRoZSBvcmlnaW5hbCB0ZXh0IHdh
cyAiU2VsZWN0IG1lLCBzZWxlY3QgbWUsIHNlbGVjdCBtZSIsIGFmdGVyIHNlbGVjdGluZyBhbmQg
cGFzdGluZyB0aGUgcmVzdWx0IHNob3VsZCBiZSAiU2VsZWN0IG1lLCBzZWxlY1NlbGVjdCBtdCBt
ZSwgc2VsZWN0IG1lIjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBmNTg5ODEzLi5jMWJl
N2E0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDA5LTEyLTAyICBBbGVqYW5kcm8gRy4gQ2FzdHJv
ICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpeGVkIHRoZSBwcm9ibGVtIHdoZW4gcGFzdGluZyBpbiB0aGUgc2FtZSB3
aW5kb3cgd2l0aCB0aGUKKyAgICAgICAgbWlkZGxlLWJ1dHRvbiwgbm93IHdlIHN0b3JlIGEgcmVm
ZXJlbmNlIHRvIHRoZSByYW5nZSBpbnN0ZWFkIG9mCisgICAgICAgIHJlcXVlc3RpbmcgaXQgZXZl
cnkgdGltZSwgYW5kIHdlIGRvIG5vdCByZWxlYXNlIGl0IHVudGlsIHRoZQorICAgICAgICBjbGlw
Ym9hcmQgaXMgcmVxdWVzdGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgxNTMKKworICAgICAgICAqIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcDoKKyAgICAgICAgKiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgorCiAyMDA5LTEyLTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxu
emltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCA2
ZWM2YmFmLi45Yzg4ZWI0IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHAKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCkBAIC0xODUsMjkgKzE4NSwyOCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cmVz
cG9uZFRvQ2hhbmdlZENvbnRlbnRzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1zdGF0
aWMgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJk
LCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5mbywgZ3BvaW50ZXIg
ZGF0YSkKK3ZvaWQgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYihHdGtDbGlwYm9hcmQqIGNsaXBi
b2FyZCwgR3RrU2VsZWN0aW9uRGF0YSogc2VsZWN0aW9uX2RhdGEsIGd1aW50IGluZm8sIGdwb2lu
dGVyIGRhdGEpCiB7Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViS2l0V2ViVmlldyo+KGRhdGEpOwotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2ViVmll
dyktPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKLSAgICBQYXNzUmVm
UHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6
ZWRSYW5nZSgpOworICAgIEVkaXRvckNsaWVudCogY2xpZW50ID0gcmVpbnRlcnByZXRfY2FzdDxF
ZGl0b3JDbGllbnQqPihkYXRhKTsKKworICAgIGlmICghY2xpZW50LT5tX3JhbmdlKQorICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoc3RhdGljX2Nhc3Q8Z2ludD4oaW5mbykgPT0gV0VCS0lUX1dF
Ql9WSUVXX1RBUkdFVF9JTkZPX0hUTUwpIHsKLSAgICAgICAgU3RyaW5nIG1hcmt1cCA9IGNyZWF0
ZU1hcmt1cChzZWxlY3RlZFJhbmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlKTsK
KyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IGNyZWF0ZU1hcmt1cChjbGllbnQtPm1fcmFuZ2UuZ2V0
KCksIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2Rh
dGFfc2V0KHNlbGVjdGlvbl9kYXRhLCBzZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4o
bWFya3VwLnV0ZjgoKS5kYXRhKCkpLCBtYXJrdXAudXRmOCgpLmxlbmd0aCgpKTsKICAgICB9IGVs
c2UgewotICAgICAgICBTdHJpbmcgdGV4dCA9IHNlbGVjdGVkUmFuZ2UtPnRleHQoKTsKKyAgICAg
ICAgU3RyaW5nIHRleHQgPSBjbGllbnQtPm1fcmFuZ2UtPnRleHQoKTsKICAgICAgICAgZ3RrX3Nl
bGVjdGlvbl9kYXRhX3NldF90ZXh0KHNlbGVjdGlvbl9kYXRhLCB0ZXh0LnV0ZjgoKS5kYXRhKCks
IHRleHQudXRmOCgpLmxlbmd0aCgpKTsKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNsaXBib2Fy
ZF9jbGVhcl9jb250ZW50c19jYihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0
YSkKK3ZvaWQgY2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJv
YXJkLCBncG9pbnRlciBkYXRhKQogewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSByZWlu
dGVycHJldF9jYXN0PFdlYktpdFdlYlZpZXcqPihkYXRhKTsKLSAgICBGcmFtZSogZnJhbWUgPSBj
b3JlKHdlYlZpZXcpLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7Cisg
ICAgRWRpdG9yQ2xpZW50KiBjbGllbnQgPSByZWludGVycHJldF9jYXN0PEVkaXRvckNsaWVudCo+
KGRhdGEpOwogCi0gICAgLy8gQ29sbGFwc2UgdGhlIHNlbGVjdGlvbiB3aXRob3V0IGNsZWFyaW5n
IGl0Ci0gICAgZnJhbWUtPnNlbGVjdGlvbigpLT5zZXRCYXNlKGZyYW1lLT5zZWxlY3Rpb24oKS0+
ZXh0ZW50KCksIGZyYW1lLT5zZWxlY3Rpb24oKS0+YWZmaW5pdHkoKSk7CisgICAgY2xpZW50LT5t
X3JhbmdlID0gMDsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnQ6OnJlc3BvbmRUb0NoYW5nZWRTZWxl
Y3Rpb24oKQpAQCAtMjI2LDExICsyMjUsMTEgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OnJlc3BvbmRU
b0NoYW5nZWRTZWxlY3Rpb24oKQogICAgICAgICBHdGtUYXJnZXRMaXN0KiB0YXJnZXRMaXN0ID0g
d2Via2l0X3dlYl92aWV3X2dldF9jb3B5X3RhcmdldF9saXN0KG1fd2ViVmlldyk7CiAgICAgICAg
IGdpbnQgdGFyZ2V0Q291bnQ7CiAgICAgICAgIEd0a1RhcmdldEVudHJ5KiB0YXJnZXRzID0gZ3Rr
X3RhcmdldF90YWJsZV9uZXdfZnJvbV9saXN0KHRhcmdldExpc3QsICZ0YXJnZXRDb3VudCk7Ci0g
ICAgICAgIGd0a19jbGlwYm9hcmRfc2V0X3dpdGhfb3duZXIoY2xpcGJvYXJkLCB0YXJnZXRzLCB0
YXJnZXRDb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9h
cmRfZ2V0X2NvbnRlbnRzX2NiLCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IsIEdfT0JKRUNU
KG1fd2ViVmlldykpOworICAgICAgICBndGtfY2xpcGJvYXJkX3NldF93aXRoX2RhdGEoY2xpcGJv
YXJkLCB0YXJnZXRzLCB0YXJnZXRDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaXBib2FyZF9nZXRfY29udGVudHNfY2IsIGNsaXBib2FyZF9jbGVhcl9jb250ZW50
c19jYiwgdGhpcyk7CisgICAgICAgIG1fcmFuZ2UgPSB0YXJnZXRGcmFtZS0+c2VsZWN0aW9uKCkt
PnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgICAgIGd0a190YXJnZXRfdGFibGVfZnJlZSh0YXJn
ZXRzLCB0YXJnZXRDb3VudCk7Ci0gICAgfSBlbHNlIGlmIChndGtfY2xpcGJvYXJkX2dldF9vd25l
cihjbGlwYm9hcmQpID09IEdfT0JKRUNUKG1fd2ViVmlldykpCi0gICAgICAgIGd0a19jbGlwYm9h
cmRfY2xlYXIoY2xpcGJvYXJkKTsKKyAgICB9CiAKICAgICBpZiAoIXRhcmdldEZyYW1lLT5lZGl0
b3IoKS0+aGFzQ29tcG9zaXRpb24oKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNTUxLDYgKzU1MCw3
IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3
KQorICAgICwgbV9yYW5nZSgwKQogewogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0g
bV93ZWJWaWV3LT5wcml2OwogICAgIGdfc2lnbmFsX2Nvbm5lY3QocHJpdi0+aW1Db250ZXh0LCAi
Y29tbWl0IiwgR19DQUxMQkFDSyhpbUNvbnRleHRDb21taXR0ZWQpLCB0aGlzKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDkyOTI2NTEuLjMzZWZh
NGQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmgKKysrIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAt
MzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKyNpbmNsdWRlIDxndGsvZ3RrLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRX
ZWJWaWV3IFdlYktpdFdlYlZpZXc7CiAKQEAgLTEyMCw2ICsxMjEsMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKICAgICBwcml2YXRlOgogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7
CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4gbV9yYW5nZTsKKworICAgICAgICBmcmll
bmQgdm9pZCBjbGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJk
LCBHdGtTZWxlY3Rpb25EYXRhKiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5mbywgZ3BvaW50ZXIg
ZGF0YSk7CisgICAgICAgIGZyaWVuZCB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYihH
dGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSk7CiAgICAgfTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45233</attachid>
            <date>2009-12-19 04:14:27 -0800</date>
            <delta_ts>2009-12-19 05:01:26 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>middle_click_paste_same_tab.patch</filename>
            <type>text/plain</type>
            <size>7450</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZDQ0NGFjLi4zZDFmZmFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTggIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE1MworICAgICAgICBjYW4ndCBtaWRkbGUt
YnV0dG9uIHBhc3RlIHdpdGhpbiBhIHNpbmdsZSB3aW5kb3cKKworICAgICAgICAqIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkCisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0bWw6IEFkZWVkCisKIDIwMDkt
MTItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFzdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0
dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li42NTdkZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1NlbGVjdCBtZSwgc2VsZWNTZWxlY3QgbXQgbWUsIHNlbGVjdCBtZQorCitUaGUg
b3JpZ2luYWwgdGV4dCB3YXMgIlNlbGVjdCBtZSwgc2VsZWN0IG1lLCBzZWxlY3QgbWUiLCBhZnRl
ciBzZWxlY3RpbmcgYW5kIHBhc3RpbmcgdGhlIHJlc3VsdCBzaG91bGQgYmUgIlNlbGVjdCBtZSwg
c2VsZWNTZWxlY3QgbXQgbWUsIHNlbGVjdCBtZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9u
LXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJlM2I1Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgor
PGhlYWQ+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworPC9zY3JpcHQ+CisKKzxzdHlsZT4KK2JvZHkgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgfQor
PC9zdHlsZT4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
eHQiKTsKKworICAgIHZhciB4ID0gdGFyZ2V0Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgdGFy
Z2V0Lm9mZnNldExlZnQ7CisgICAgdmFyIHkgPSB0YXJnZXQub2Zmc2V0UGFyZW50Lm9mZnNldFRv
cCArIHRhcmdldC5vZmZzZXRUb3AgKworICAgICAgICB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsK
KworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyA1MCwgeSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyAx
MDAsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigxKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKDEpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxkaXYgaWQ9InRleHQiIGNvbnRlbnRlZGl0YWJsZT5TZWxlY3QgbWUsIHNlbGVjdCBt
ZSwgc2VsZWN0IG1lPC9kaXY+CisKKzxici8+Cis8cD5UaGUgb3JpZ2luYWwgdGV4dCB3YXMgIlNl
bGVjdCBtZSwgc2VsZWN0IG1lLCBzZWxlY3QgbWUiLCBhZnRlciBzZWxlY3RpbmcgYW5kIHBhc3Rp
bmcgdGhlIHJlc3VsdCBzaG91bGQgYmUgIlNlbGVjdCBtZSwgc2VsZWNTZWxlY3QgbXQgbWUsIHNl
bGVjdCBtZSI8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMWJjOWI4MC4uMDMxYmQwNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMi0xOCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFs
ZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlZCB0aGUgcHJvYmxlbSB3aGVuIHBhc3RpbmcgaW4gdGhlIHNhbWUgd2luZG93
IHdpdGggdGhlCisgICAgICAgIG1pZGRsZS1idXR0b24sIG5vdyB3ZSBzdG9yZSBhIHJlZmVyZW5j
ZSB0byB0aGUgcmFuZ2UgaW5zdGVhZCBvZgorICAgICAgICByZXF1ZXN0aW5nIGl0IGV2ZXJ5IHRp
bWUsIGFuZCB3ZSBkbyBub3QgcmVsZWFzZSBpdCB1bnRpbCB0aGUKKyAgICAgICAgY2xpcGJvYXJk
IGlzIHJlcXVlc3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MTUzCisKKyAgICAgICAgKiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaDoKKwogMjAwOS0xMi0xOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4IDZlYzZiYWYuLjljODhl
YjQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
QEAgLTE4NSwyOSArMTg1LDI4IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2Vk
Q29udGVudHMoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsaXBi
b2FyZF9nZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEd0a1NlbGVjdGlv
bkRhdGEqIHNlbGVjdGlvbl9kYXRhLCBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKQordm9pZCBj
bGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHdGtTZWxl
Y3Rpb25EYXRhKiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5mbywgZ3BvaW50ZXIgZGF0YSkKIHsK
LSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gcmVpbnRlcnByZXRfY2FzdDxXZWJLaXRXZWJW
aWV3Kj4oZGF0YSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNl
bGVjdGVkUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Cisg
ICAgRWRpdG9yQ2xpZW50KiBjbGllbnQgPSByZWludGVycHJldF9jYXN0PEVkaXRvckNsaWVudCo+
KGRhdGEpOworCisgICAgaWYgKCFjbGllbnQtPm1fcmFuZ2UpCisgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChzdGF0aWNfY2FzdDxnaW50PihpbmZvKSA9PSBXRUJLSVRfV0VCX1ZJRVdfVEFSR0VU
X0lORk9fSFRNTCkgewotICAgICAgICBTdHJpbmcgbWFya3VwID0gY3JlYXRlTWFya3VwKHNlbGVj
dGVkUmFuZ2UuZ2V0KCksIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpOworICAgICAgICBTdHJp
bmcgbWFya3VwID0gY3JlYXRlTWFya3VwKGNsaWVudC0+bV9yYW5nZS5nZXQoKSwgMCwgQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSk7CiAgICAgICAgIGd0a19zZWxlY3Rpb25fZGF0YV9zZXQoc2VsZWN0
aW9uX2RhdGEsIHNlbGVjdGlvbl9kYXRhLT50YXJnZXQsIDgsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBndWNoYXIqPihtYXJrdXAudXRmOCgp
LmRhdGEoKSksIG1hcmt1cC51dGY4KCkubGVuZ3RoKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IFN0cmluZyB0ZXh0ID0gc2VsZWN0ZWRSYW5nZS0+dGV4dCgpOworICAgICAgICBTdHJpbmcgdGV4
dCA9IGNsaWVudC0+bV9yYW5nZS0+dGV4dCgpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFf
c2V0X3RleHQoc2VsZWN0aW9uX2RhdGEsIHRleHQudXRmOCgpLmRhdGEoKSwgdGV4dC51dGY4KCku
bGVuZ3RoKCkpOwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgY2xpcGJvYXJkX2NsZWFyX2NvbnRl
bnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBncG9pbnRlciBkYXRhKQordm9pZCBjbGlw
Ym9hcmRfY2xlYXJfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIGdwb2ludGVy
IGRhdGEpCiB7Ci0gICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViS2l0V2ViVmlldyo+KGRhdGEpOwotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUod2ViVmlldykt
PmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBFZGl0b3JDbGll
bnQqIGNsaWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RWRpdG9yQ2xpZW50Kj4oZGF0YSk7CiAKLSAg
ICAvLyBDb2xsYXBzZSB0aGUgc2VsZWN0aW9uIHdpdGhvdXQgY2xlYXJpbmcgaXQKLSAgICBmcmFt
ZS0+c2VsZWN0aW9uKCktPnNldEJhc2UoZnJhbWUtPnNlbGVjdGlvbigpLT5leHRlbnQoKSwgZnJh
bWUtPnNlbGVjdGlvbigpLT5hZmZpbml0eSgpKTsKKyAgICBjbGllbnQtPm1fcmFuZ2UgPSAwOwog
fQogCiB2b2lkIEVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbigpCkBAIC0y
MjYsMTEgKzIyNSwxMSBAQCB2b2lkIEVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVj
dGlvbigpCiAgICAgICAgIEd0a1RhcmdldExpc3QqIHRhcmdldExpc3QgPSB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2NvcHlfdGFyZ2V0X2xpc3QobV93ZWJWaWV3KTsKICAgICAgICAgZ2ludCB0YXJnZXRD
b3VudDsKICAgICAgICAgR3RrVGFyZ2V0RW50cnkqIHRhcmdldHMgPSBndGtfdGFyZ2V0X3RhYmxl
X25ld19mcm9tX2xpc3QodGFyZ2V0TGlzdCwgJnRhcmdldENvdW50KTsKLSAgICAgICAgZ3RrX2Ns
aXBib2FyZF9zZXRfd2l0aF9vd25lcihjbGlwYm9hcmQsIHRhcmdldHMsIHRhcmdldENvdW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBib2FyZF9nZXRfY29udGVu
dHNfY2IsIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19jYiwgR19PQkpFQ1QobV93ZWJWaWV3KSk7
CisgICAgICAgIGd0a19jbGlwYm9hcmRfc2V0X3dpdGhfZGF0YShjbGlwYm9hcmQsIHRhcmdldHMs
IHRhcmdldENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJv
YXJkX2dldF9jb250ZW50c19jYiwgY2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiLCB0aGlzKTsK
KyAgICAgICAgbV9yYW5nZSA9IHRhcmdldEZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVk
UmFuZ2UoKTsKICAgICAgICAgZ3RrX3RhcmdldF90YWJsZV9mcmVlKHRhcmdldHMsIHRhcmdldENv
dW50KTsKLSAgICB9IGVsc2UgaWYgKGd0a19jbGlwYm9hcmRfZ2V0X293bmVyKGNsaXBib2FyZCkg
PT0gR19PQkpFQ1QobV93ZWJWaWV3KSkKLSAgICAgICAgZ3RrX2NsaXBib2FyZF9jbGVhcihjbGlw
Ym9hcmQpOworICAgIH0KIAogICAgIGlmICghdGFyZ2V0RnJhbWUtPmVkaXRvcigpLT5oYXNDb21w
b3NpdGlvbigpKQogICAgICAgICByZXR1cm47CkBAIC01NTEsNiArNTUwLDcgQEAgdm9pZCBFZGl0
b3JDbGllbnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KiBldmVudCkK
IEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAg
OiBtX2lzSW5SZWRvKGZhbHNlKQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCisgICAgLCBtX3Jh
bmdlKDApCiB7CiAgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHByaXYgPSBtX3dlYlZpZXctPnBy
aXY7CiAgICAgZ19zaWduYWxfY29ubmVjdChwcml2LT5pbUNvbnRleHQsICJjb21taXQiLCBHX0NB
TExCQUNLKGltQ29udGV4dENvbW1pdHRlZCksIHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKaW5kZXggOTI5MjY1MS4uMzNlZmE0ZCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC0zNCw2ICszNCw3IEBA
CiAKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYlZpZXcgV2ViS2l0
V2ViVmlldzsKIApAQCAtMTIwLDYgKzEyMSwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKKyAgICAgICAgUmVm
UHRyPFdlYkNvcmU6OlJhbmdlPiBtX3JhbmdlOworCisgICAgICAgIGZyaWVuZCB2b2lkIGNsaXBi
b2FyZF9nZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEd0a1NlbGVjdGlv
bkRhdGEqIHNlbGVjdGlvbl9kYXRhLCBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKTsKKyAgICAg
ICAgZnJpZW5kIHZvaWQgY2xpcGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCog
Y2xpcGJvYXJkLCBncG9pbnRlciBkYXRhKTsKICAgICB9OwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45234</attachid>
            <date>2009-12-19 05:01:26 -0800</date>
            <delta_ts>2009-12-19 10:38:03 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>middle_click_paste_same_tab.patch</filename>
            <type>text/plain</type>
            <size>7440</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZDQ0NGFjLi4zZDFmZmFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTggIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE1MworICAgICAgICBjYW4ndCBtaWRkbGUt
YnV0dG9uIHBhc3RlIHdpdGhpbiBhIHNpbmdsZSB3aW5kb3cKKworICAgICAgICAqIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS1l
eHBlY3RlZC50eHQ6IEFkZGVkCisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLmh0bWw6IEFkZWVkCisKIDIwMDkt
MTItMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvZWRpdGluZy9wYXN0ZWJvYXJkL21pZGRsZS1idXR0b24tcGFzdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0
dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li42NTdkZGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2Vk
aXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9uLXBhc3RlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1NlbGVjdCBtZSwgc2VsZWNTZWxlY3QgbXQgbWUsIHNlbGVjdCBtZQorCitUaGUg
b3JpZ2luYWwgdGV4dCB3YXMgIlNlbGVjdCBtZSwgc2VsZWN0IG1lLCBzZWxlY3QgbWUiLCBhZnRl
ciBzZWxlY3RpbmcgYW5kIHBhc3RpbmcgdGhlIHJlc3VsdCBzaG91bGQgYmUgIlNlbGVjdCBtZSwg
c2VsZWNTZWxlY3QgbXQgbWUsIHNlbGVjdCBtZSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3RlYm9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS5odG1sIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2VkaXRpbmcvcGFzdGVib2FyZC9taWRkbGUtYnV0dG9u
LXBhc3RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJlM2I1Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvbWlkZGxlLWJ1dHRvbi1wYXN0ZS5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxodG1sPgor
PGhlYWQ+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworPC9zY3JpcHQ+CisKKzxzdHlsZT4KK2JvZHkgeyBtYXJnaW46IDA7IHBhZGRpbmc6IDAgfQor
PC9zdHlsZT4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
eHQiKTsKKworICAgIHZhciB4ID0gdGFyZ2V0Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgdGFy
Z2V0Lm9mZnNldExlZnQ7CisgICAgdmFyIHkgPSB0YXJnZXQub2Zmc2V0UGFyZW50Lm9mZnNldFRv
cCArIHRhcmdldC5vZmZzZXRUb3AgKworICAgICAgICB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMjsK
KworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyA1MCwgeSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHggKyAx
MDAsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigxKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKDEpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxkaXYgaWQ9InRleHQiIGNvbnRlbnRlZGl0YWJsZT5TZWxlY3QgbWUsIHNlbGVjdCBt
ZSwgc2VsZWN0IG1lPC9kaXY+CisKKzxici8+Cis8cD5UaGUgb3JpZ2luYWwgdGV4dCB3YXMgIlNl
bGVjdCBtZSwgc2VsZWN0IG1lLCBzZWxlY3QgbWUiLCBhZnRlciBzZWxlY3RpbmcgYW5kIHBhc3Rp
bmcgdGhlIHJlc3VsdCBzaG91bGQgYmUgIlNlbGVjdCBtZSwgc2VsZWNTZWxlY3QgbXQgbWUsIHNl
bGVjdCBtZSI8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggMWJjOWI4MC4uMDMxYmQwNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0xMi0xOCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFs
ZXhAaWdhbGlhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXhlZCB0aGUgcHJvYmxlbSB3aGVuIHBhc3RpbmcgaW4gdGhlIHNhbWUgd2luZG93
IHdpdGggdGhlCisgICAgICAgIG1pZGRsZS1idXR0b24sIG5vdyB3ZSBzdG9yZSBhIHJlZmVyZW5j
ZSB0byB0aGUgcmFuZ2UgaW5zdGVhZCBvZgorICAgICAgICByZXF1ZXN0aW5nIGl0IGV2ZXJ5IHRp
bWUsIGFuZCB3ZSBkbyBub3QgcmVsZWFzZSBpdCB1bnRpbCB0aGUKKyAgICAgICAgY2xpcGJvYXJk
IGlzIHJlcXVlc3RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI4MTUzCisKKyAgICAgICAgKiBXZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHA6CisgICAgICAgICogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaDoKKwogMjAwOS0xMi0xOCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCmluZGV4IDZlYzZiYWYuLmI4NTY2
YTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
QEAgLTE4NSwyOSArMTg1LDI4IEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2Vk
Q29udGVudHMoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGNsaXBi
b2FyZF9nZXRfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQsIEd0a1NlbGVjdGlv
bkRhdGEqIHNlbGVjdGlvbl9kYXRhLCBndWludCBpbmZvLCBncG9pbnRlciBkYXRhKQordm9pZCBj
bGlwYm9hcmRfZ2V0X2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBHdGtTZWxl
Y3Rpb25EYXRhKiBzZWxlY3Rpb25fZGF0YSwgZ3VpbnQgaW5mbywgZ3BvaW50ZXIgZGF0YSkKIHsK
LSAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gcmVpbnRlcnByZXRfY2FzdDxXZWJLaXRXZWJW
aWV3Kj4oZGF0YSk7Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh3ZWJWaWV3KS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNl
bGVjdGVkUmFuZ2UgPSBmcmFtZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Cisg
ICAgRWRpdG9yQ2xpZW50KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnQqPihkYXRh
KTsKKworICAgIGlmICghY2xpZW50LT5tX3JhbmdlKQorICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoc3RhdGljX2Nhc3Q8Z2ludD4oaW5mbykgPT0gV0VCS0lUX1dFQl9WSUVXX1RBUkdFVF9JTkZP
X0hUTUwpIHsKLSAgICAgICAgU3RyaW5nIG1hcmt1cCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJh
bmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlKTsKKyAgICAgICAgU3RyaW5nIG1h
cmt1cCA9IGNyZWF0ZU1hcmt1cChjbGllbnQtPm1fcmFuZ2UuZ2V0KCksIDAsIEFubm90YXRlRm9y
SW50ZXJjaGFuZ2UpOwogICAgICAgICBndGtfc2VsZWN0aW9uX2RhdGFfc2V0KHNlbGVjdGlvbl9k
YXRhLCBzZWxlY3Rpb25fZGF0YS0+dGFyZ2V0LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4obWFya3VwLnV0ZjgoKS5kYXRh
KCkpLCBtYXJrdXAudXRmOCgpLmxlbmd0aCgpKTsKICAgICB9IGVsc2UgewotICAgICAgICBTdHJp
bmcgdGV4dCA9IHNlbGVjdGVkUmFuZ2UtPnRleHQoKTsKKyAgICAgICAgU3RyaW5nIHRleHQgPSBj
bGllbnQtPm1fcmFuZ2UtPnRleHQoKTsKICAgICAgICAgZ3RrX3NlbGVjdGlvbl9kYXRhX3NldF90
ZXh0KHNlbGVjdGlvbl9kYXRhLCB0ZXh0LnV0ZjgoKS5kYXRhKCksIHRleHQudXRmOCgpLmxlbmd0
aCgpKTsKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIGNsaXBib2FyZF9jbGVhcl9jb250ZW50c19j
YihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgZ3BvaW50ZXIgZGF0YSkKK3ZvaWQgY2xpcGJvYXJk
X2NsZWFyX2NvbnRlbnRzX2NiKEd0a0NsaXBib2FyZCogY2xpcGJvYXJkLCBncG9pbnRlciBkYXRh
KQogewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSByZWludGVycHJldF9jYXN0PFdlYktp
dFdlYlZpZXcqPihkYXRhKTsKLSAgICBGcmFtZSogZnJhbWUgPSBjb3JlKHdlYlZpZXcpLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRWRpdG9yQ2xpZW50KiBj
bGllbnQgPSBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnQqPihkYXRhKTsKIAotICAgIC8vIENvbGxh
cHNlIHRoZSBzZWxlY3Rpb24gd2l0aG91dCBjbGVhcmluZyBpdAotICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+c2V0QmFzZShmcmFtZS0+c2VsZWN0aW9uKCktPmV4dGVudCgpLCBmcmFtZS0+c2VsZWN0
aW9uKCktPmFmZmluaXR5KCkpOworICAgIGNsaWVudC0+bV9yYW5nZSA9IDA7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKCkKQEAgLTIyNiwxMSArMjI1
LDExIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKCkKICAg
ICAgICAgR3RrVGFyZ2V0TGlzdCogdGFyZ2V0TGlzdCA9IHdlYmtpdF93ZWJfdmlld19nZXRfY29w
eV90YXJnZXRfbGlzdChtX3dlYlZpZXcpOwogICAgICAgICBnaW50IHRhcmdldENvdW50OwogICAg
ICAgICBHdGtUYXJnZXRFbnRyeSogdGFyZ2V0cyA9IGd0a190YXJnZXRfdGFibGVfbmV3X2Zyb21f
bGlzdCh0YXJnZXRMaXN0LCAmdGFyZ2V0Q291bnQpOwotICAgICAgICBndGtfY2xpcGJvYXJkX3Nl
dF93aXRoX293bmVyKGNsaXBib2FyZCwgdGFyZ2V0cywgdGFyZ2V0Q291bnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpcGJvYXJkX2dldF9jb250ZW50c19jYiwgY2xp
cGJvYXJkX2NsZWFyX2NvbnRlbnRzX2NiLCBHX09CSkVDVChtX3dlYlZpZXcpKTsKKyAgICAgICAg
Z3RrX2NsaXBib2FyZF9zZXRfd2l0aF9kYXRhKGNsaXBib2FyZCwgdGFyZ2V0cywgdGFyZ2V0Q291
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwYm9hcmRfZ2V0X2Nv
bnRlbnRzX2NiLCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IsIHRoaXMpOworICAgICAgICBt
X3JhbmdlID0gdGFyZ2V0RnJhbWUtPnNlbGVjdGlvbigpLT50b05vcm1hbGl6ZWRSYW5nZSgpOwog
ICAgICAgICBndGtfdGFyZ2V0X3RhYmxlX2ZyZWUodGFyZ2V0cywgdGFyZ2V0Q291bnQpOwotICAg
IH0gZWxzZSBpZiAoZ3RrX2NsaXBib2FyZF9nZXRfb3duZXIoY2xpcGJvYXJkKSA9PSBHX09CSkVD
VChtX3dlYlZpZXcpKQotICAgICAgICBndGtfY2xpcGJvYXJkX2NsZWFyKGNsaXBib2FyZCk7Cisg
ICAgfQogCiAgICAgaWYgKCF0YXJnZXRGcmFtZS0+ZWRpdG9yKCktPmhhc0NvbXBvc2l0aW9uKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTU1MSw2ICs1NTAsNyBAQCB2b2lkIEVkaXRvckNsaWVudDo6
aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqIGV2ZW50KQogRWRpdG9yQ2xp
ZW50OjpFZGl0b3JDbGllbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICA6IG1faXNJblJl
ZG8oZmFsc2UpCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKKyAgICAsIG1fcmFuZ2UoMCkKIHsK
ICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IG1fd2ViVmlldy0+cHJpdjsKICAgICBn
X3NpZ25hbF9jb25uZWN0KHByaXYtPmltQ29udGV4dCwgImNvbW1pdCIsIEdfQ0FMTEJBQ0soaW1D
b250ZXh0Q29tbWl0dGVkKSwgdGhpcyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oIGIvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRHdGsuaAppbmRleCA5MjkyNjUxLi4zM2VmYTRkIDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1
ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8Z3Rr
L2d0ay5oPgogCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViVmlldyBXZWJLaXRXZWJWaWV3Owog
CkBAIC0xMjAsNiArMTIxLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OworICAgICAgICBSZWZQdHI8V2ViQ29y
ZTo6UmFuZ2U+IG1fcmFuZ2U7CisKKyAgICAgICAgZnJpZW5kIHZvaWQgY2xpcGJvYXJkX2dldF9j
b250ZW50c19jYihHdGtDbGlwYm9hcmQqIGNsaXBib2FyZCwgR3RrU2VsZWN0aW9uRGF0YSogc2Vs
ZWN0aW9uX2RhdGEsIGd1aW50IGluZm8sIGdwb2ludGVyIGRhdGEpOworICAgICAgICBmcmllbmQg
dm9pZCBjbGlwYm9hcmRfY2xlYXJfY29udGVudHNfY2IoR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQs
IGdwb2ludGVyIGRhdGEpOwogICAgIH07CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>