<?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>32434</bug_id>
          
          <creation_ts>2009-12-11 08:04:17 -0800</creation_ts>
          <short_desc>[Qt] Add support for mocking touch events with Q(GV)Launcher</short_desc>
          <delta_ts>2009-12-17 09:21:54 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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>Qt</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>32432</dependson>
          <blocked>32485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jonni.rainisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170766</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-11 08:04:17 -0800</bug_when>
    <thetext>It would be nice to be able to simulate touch events with a mouse from Q(GV)Launcher.

Kim&apos;s idea was to have a menu item to toggle mocking. When enabled a single mouse click is converted to be a single touch event instead. Pressing Ctrl + F (as in &quot;finger&quot;) will make the last mouse position a stationary touch point and any subsequence mouse clicks produce a second touch point. Pressing Ctrl+F again would remove the second point again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172213</commentid>
    <comment_count>1</comment_count>
      <attachid>44954</attachid>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2009-12-16 01:17:51 -0800</bug_when>
    <thetext>Created attachment 44954
Adds multitouch mocking to QtLauncher

This is pretty much what I had in mind. Now the mocking is switched on by default and can be switched off from the &apos;Tools&apos;-menu or by pressing Ctrl+Alt+T.
The other finger is pressed and released by pressing Ctrl+F and the other is controlled with mouse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172214</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-16 01:20:59 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44954 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172215</commentid>
    <comment_count>3</comment_count>
      <attachid>44955</attachid>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2009-12-16 01:22:58 -0800</bug_when>
    <thetext>Created attachment 44955
Test page for Touch DOM events. Supports two touchpoints.

This test page can be used to test the multi-touch mocking with QtLauncher.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172250</commentid>
    <comment_count>4</comment_count>
      <attachid>44954</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-16 03:27:23 -0800</bug_when>
    <thetext>Comment on attachment 44954
Adds multitouch mocking to QtLauncher


&gt; +#if QT_VERSION &gt;= QT_VERSION_CHECK(4, 6, 0)
&gt; +#include &lt;qevent.h&gt;
&gt; +#endif

This #if isn&apos;t necessary, qevent.h has been there since Qt 1.0 :-)
  
&gt; +    bool eventFilter(QObject* obj, QEvent* event)
&gt; +    {
&gt; +        if (!touchMocking || obj != view)
&gt; +            return QObject::eventFilter(obj, event);
&gt; +
&gt; +        if (event-&gt;type() == QEvent::MouseButtonPress
&gt; +            || event-&gt;type() == QEvent::MouseButtonRelease
&gt; +            || event-&gt;type() == QEvent::MouseButtonDblClick
&gt; +            || event-&gt;type() == QEvent::MouseMove) {
&gt; +
&gt; +            QMouseEvent* ev = static_cast&lt;QMouseEvent *&gt;(event);

Coding style nitpick: No space before the * :)

&gt; +            if (ev-&gt;type() == QEvent::MouseMove
&gt; +                &amp;&amp; !(ev-&gt;buttons() &amp; Qt::LeftButton))
&gt; +                return false;
&gt; +
&gt; +            QTouchEvent::TouchPoint touchPoint;
&gt; +            touchPoint.setState(Qt::TouchPointMoved);
&gt; +            if ((ev-&gt;type() == QEvent::MouseButtonPress
&gt; +                 || ev-&gt;type() == QEvent::MouseButtonDblClick))
&gt; +                touchPoint.setState(Qt::TouchPointPressed);
&gt; +            else if (ev-&gt;type() == QEvent::MouseButtonRelease)
&gt; +                touchPoint.setState(Qt::TouchPointReleased);
&gt; +
&gt; +            touchPoint.setId(0);
&gt; +            touchPoint.setScreenPos(ev-&gt;globalPos());
&gt; +            touchPoint.setPos(ev-&gt;pos());
&gt; +            touchPoint.setPressure(1);
&gt; +
&gt; +            // If the point already exists, update it. Otherwise create it.
&gt; +            if (touchPoints.size()&gt;0 &amp;&amp; !touchPoints[0].id()) 

Coding style: There should be a space before and after the &gt; character

&gt; +                touchPoints[0] = touchPoint;
&gt; +            else if (touchPoints.size()&gt;1 &amp;&amp; !touchPoints[1].id()) 

Ditto.

&gt; +                touchPoints[1] = touchPoint;
&gt; +            else 
&gt; +                touchPoints.append(touchPoint);
&gt; +
&gt; +            sendTouchEvent();
&gt; +        } else if (event-&gt;type() == QEvent::KeyPress
&gt; +            &amp;&amp; ((QKeyEvent*)event)-&gt;key() == Qt::Key_F
&gt; +            &amp;&amp; ((QKeyEvent*)event)-&gt;modifiers() == Qt::ControlModifier) {

Please use a static_cast.

&gt; +            // If the keyboard point is already pressed, release it.
&gt; +            // Otherwise create it and append to touchPoints.
&gt; +            if (touchPoints.size()&gt;0 &amp;&amp; touchPoints[0].id() == 1) {

Coding style: There should be a space before and after the &gt; character

&gt; +                touchPoints[0].setState(Qt::TouchPointReleased);
&gt; +                sendTouchEvent();
&gt; +            } else if (touchPoints.size()&gt;1 &amp;&amp; touchPoints[1].id() == 1) {

Ditto.

&gt; +                touchPoints[1].setState(Qt::TouchPointReleased);
&gt; +                sendTouchEvent();
&gt; +            } else {
&gt; +                QTouchEvent::TouchPoint touchPoint;
&gt; +                touchPoint.setState(Qt::TouchPointPressed);
&gt; +                touchPoint.setId(1);
&gt; +                touchPoint.setScreenPos(QCursor::pos());
&gt; +                touchPoint.setPos(view-&gt;mapFromGlobal(QCursor::pos()));

I suggest to remember the last mouse point. Just a thought :)

&gt; +                touchPoint.setPressure(1);            
&gt; +                touchPoints.append(touchPoint);
&gt; +                sendTouchEvent();
&gt; +
&gt; +                // After sending the event, change the touchpoint state to stationary
&gt; +                touchPoints.last().setState(Qt::TouchPointStationary);


Shouldn&apos;t we disable mocking by default?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172730</commentid>
    <comment_count>5</comment_count>
      <attachid>45057</attachid>
    <who name="Kim Grönholm">kim.1.gronholm</who>
    <bug_when>2009-12-17 05:36:44 -0800</bug_when>
    <thetext>Created attachment 45057
Adds multitouch mocking to QtLauncher

Updated patch according to Simon&apos;s comments except remembering the last mouse point. It would just add lines of code and make it slightly more complicated. I don&apos;t see any downsides in using QCursor::pos() to get the mouse position. It&apos;s simple and works :) However, I will change that as well if demanded?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172731</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 05:39:15 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45057 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172733</commentid>
    <comment_count>7</comment_count>
      <attachid>45057</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-12-17 05:51:41 -0800</bug_when>
    <thetext>Comment on attachment 45057
Adds multitouch mocking to QtLauncher

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172734</commentid>
    <comment_count>8</comment_count>
      <attachid>45057</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 06:01:56 -0800</bug_when>
    <thetext>Comment on attachment 45057
Adds multitouch mocking to QtLauncher

Clearing flags on attachment: 45057

Committed r52250: &lt;http://trac.webkit.org/changeset/52250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172735</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 06:02:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172783</commentid>
    <comment_count>10</comment_count>
      <attachid>45071</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-17 08:14:41 -0800</bug_when>
    <thetext>Created attachment 45071
The event delivery should go through the normal path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172784</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 08:15:15 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45071 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172801</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2009-12-17 09:06:17 -0800</bug_when>
    <thetext>Reopening.

The event should go through the normal path. We need to simulate touch events are if they were sent by the system (with filtering in some cases).

I&apos;d prefer to see something like this in Qt. This feature could be useful in many more cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172808</commentid>
    <comment_count>13</comment_count>
      <attachid>45071</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 09:21:47 -0800</bug_when>
    <thetext>Comment on attachment 45071
The event delivery should go through the normal path

Clearing flags on attachment: 45071

Committed r52257: &lt;http://trac.webkit.org/changeset/52257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172809</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-17 09:21:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44954</attachid>
            <date>2009-12-16 01:17:51 -0800</date>
            <delta_ts>2009-12-17 05:36:44 -0800</delta_ts>
            <desc>Adds multitouch mocking to QtLauncher</desc>
            <filename>multitouchmock</filename>
            <type>text/plain</type>
            <size>6769</size>
            <attacher name="Kim Grönholm">kim.1.gronholm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDA5MDI0OTIuLmZhMTBhNTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTEyLTE2ICBLaW0g
R3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIG1vY2tp
bmcgdG91Y2ggZXZlbnRzIHdpdGggUXRMYXVuY2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0MzQKKworICAgICAgICAqIFF0TGF1bmNoZXIvbWFp
bi5jcHA6CisgICAgICAgIChNYWluV2luZG93OjpNYWluV2luZG93KToKKyAgICAgICAgKE1haW5X
aW5kb3c6OnNlbmRUb3VjaEV2ZW50KToKKyAgICAgICAgKE1haW5XaW5kb3c6OmV2ZW50RmlsdGVy
KToKKyAgICAgICAgKE1haW5XaW5kb3c6OnNldFRvdWNoTW9ja2luZyk6CisgICAgICAgIChNYWlu
V2luZG93OjpzZXR1cFVJKToKKwogMjAwOS0xMi0xMyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmph
bWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNt
YW5uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAgYi9XZWJLaXQv
cXQvUXRMYXVuY2hlci9tYWluLmNwcAppbmRleCAyMjg2NzEyLi5lOTRlMWNjIDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvUXRMYXVuY2hlci9tYWluLmNwcAorKysgYi9XZWJLaXQvcXQvUXRMYXVuY2hl
ci9tYWluLmNwcApAQCAtNTQsNiArNTQsOSBAQAogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgog
I2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+CiAKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hF
Q0soNCwgNiwgMCkKKyNpbmNsdWRlIDxxZXZlbnQuaD4KKyNlbmRpZgogCiAjaWZuZGVmIE5ERUJV
Rwogdm9pZCBRV0VCS0lUX0VYUE9SVCBxdF9kcnRfZ2FyYmFnZUNvbGxlY3Rvcl9jb2xsZWN0KCk7
CkBAIC0xNzgsNiArMTgxLDEyIEBAIHB1YmxpYzoKICAgICAgICAgdmlldyA9IG5ldyBXZWJWaWV3
KHNwbGl0dGVyKTsKICAgICAgICAgV2ViUGFnZSogcGFnZSA9IG5ldyBXZWJQYWdlKHZpZXcpOwog
ICAgICAgICB2aWV3LT5zZXRQYWdlKHBhZ2UpOworCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDYsIDApCisgICAgICAgIHZpZXctPmluc3RhbGxFdmVudEZpbHRlcih0aGlz
KTsKKyAgICAgICAgdG91Y2hNb2NraW5nID0gdHJ1ZTsKKyNlbmRpZgorCiAgICAgICAgIGNvbm5l
Y3QodmlldywgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSksCiAgICAgICAgICAgICAgICAgdGhp
cywgU0xPVChsb2FkRmluaXNoZWQoKSkpOwogICAgICAgICBjb25uZWN0KHZpZXcsIFNJR05BTCh0
aXRsZUNoYW5nZWQoY29uc3QgUVN0cmluZyYpKSwKQEAgLTIxOSw2ICsyMjgsOTggQEAgcHVibGlj
OgogICAgICAgICB6b29tTGV2ZWxzIDw8IDExMCA8PCAxMjAgPDwgMTMzIDw8IDE1MCA8PCAxNzAg
PDwgMjAwIDw8IDI0MCA8PCAzMDA7CiAgICAgfQogCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJT
SU9OX0NIRUNLKDQsIDYsIDApCisgICAgdm9pZCBzZW5kVG91Y2hFdmVudCgpCisgICAgeworICAg
ICAgICBpZiAodG91Y2hQb2ludHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIFFFdmVudDo6VHlwZSB0eXBlID0gUUV2ZW50OjpUb3VjaFVwZGF0ZTsKKyAgICAgICAg
aWYgKHRvdWNoUG9pbnRzLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICBpZiAodG91Y2hQb2lu
dHNbMF0uc3RhdGUoKSA9PSBRdDo6VG91Y2hQb2ludFJlbGVhc2VkKQorICAgICAgICAgICAgICAg
IHR5cGUgPSBRRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICAgICAgZWxzZSBpZiAodG91Y2hQb2lu
dHNbMF0uc3RhdGUoKSA9PSBRdDo6VG91Y2hQb2ludFByZXNzZWQpCisgICAgICAgICAgICAgICAg
dHlwZSA9IFFFdmVudDo6VG91Y2hCZWdpbjsKKyAgICAgICAgfQorCisgICAgICAgIFFUb3VjaEV2
ZW50IHRvdWNoRXYodHlwZSk7CisgICAgICAgIHRvdWNoRXYuc2V0VG91Y2hQb2ludHModG91Y2hQ
b2ludHMpOworICAgICAgICB2aWV3LT5wYWdlKCktPmV2ZW50KCZ0b3VjaEV2KTsKKworICAgICAg
ICAvLyBBZnRlciBzZW5kaW5nIHRoZSBldmVudCwgcmVtb3ZlIGFsbCB0b3VjaHBvaW50cyB0aGF0
IHdlcmUgcmVsZWFzZWQKKyAgICAgICAgaWYgKHRvdWNoUG9pbnRzWzBdLnN0YXRlKCkgPT0gUXQ6
OlRvdWNoUG9pbnRSZWxlYXNlZCkKKyAgICAgICAgICAgIHRvdWNoUG9pbnRzLnJlbW92ZUF0KDAp
OworICAgICAgICBpZiAodG91Y2hQb2ludHMuc2l6ZSgpID4gMSAmJiB0b3VjaFBvaW50c1sxXS5z
dGF0ZSgpID09IFF0OjpUb3VjaFBvaW50UmVsZWFzZWQpCisgICAgICAgICAgICB0b3VjaFBvaW50
cy5yZW1vdmVBdCgxKTsgICAgICAgIAorICAgIH0KKworICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9i
amVjdCogb2JqLCBRRXZlbnQqIGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKCF0b3VjaE1vY2tp
bmcgfHwgb2JqICE9IHZpZXcpCisgICAgICAgICAgICByZXR1cm4gUU9iamVjdDo6ZXZlbnRGaWx0
ZXIob2JqLCBldmVudCk7CisKKyAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpN
b3VzZUJ1dHRvblByZXNzCisgICAgICAgICAgICB8fCBldmVudC0+dHlwZSgpID09IFFFdmVudDo6
TW91c2VCdXR0b25SZWxlYXNlCisgICAgICAgICAgICB8fCBldmVudC0+dHlwZSgpID09IFFFdmVu
dDo6TW91c2VCdXR0b25EYmxDbGljaworICAgICAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9PSBR
RXZlbnQ6Ok1vdXNlTW92ZSkgeworCisgICAgICAgICAgICBRTW91c2VFdmVudCogZXYgPSBzdGF0
aWNfY2FzdDxRTW91c2VFdmVudCAqPihldmVudCk7CisgICAgICAgICAgICBpZiAoZXYtPnR5cGUo
KSA9PSBRRXZlbnQ6Ok1vdXNlTW92ZQorICAgICAgICAgICAgICAgICYmICEoZXYtPmJ1dHRvbnMo
KSAmIFF0OjpMZWZ0QnV0dG9uKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgICAgIFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50IHRvdWNoUG9pbnQ7CisgICAgICAgICAg
ICB0b3VjaFBvaW50LnNldFN0YXRlKFF0OjpUb3VjaFBvaW50TW92ZWQpOworICAgICAgICAgICAg
aWYgKChldi0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0b25QcmVzcworICAgICAgICAgICAg
ICAgICB8fCBldi0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0b25EYmxDbGljaykpCisgICAg
ICAgICAgICAgICAgdG91Y2hQb2ludC5zZXRTdGF0ZShRdDo6VG91Y2hQb2ludFByZXNzZWQpOwor
ICAgICAgICAgICAgZWxzZSBpZiAoZXYtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVs
ZWFzZSkKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LnNldFN0YXRlKFF0OjpUb3VjaFBvaW50
UmVsZWFzZWQpOworCisgICAgICAgICAgICB0b3VjaFBvaW50LnNldElkKDApOworICAgICAgICAg
ICAgdG91Y2hQb2ludC5zZXRTY3JlZW5Qb3MoZXYtPmdsb2JhbFBvcygpKTsKKyAgICAgICAgICAg
IHRvdWNoUG9pbnQuc2V0UG9zKGV2LT5wb3MoKSk7CisgICAgICAgICAgICB0b3VjaFBvaW50LnNl
dFByZXNzdXJlKDEpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcG9pbnQgYWxyZWFkeSBleGlz
dHMsIHVwZGF0ZSBpdC4gT3RoZXJ3aXNlIGNyZWF0ZSBpdC4KKyAgICAgICAgICAgIGlmICh0b3Vj
aFBvaW50cy5zaXplKCk+MCAmJiAhdG91Y2hQb2ludHNbMF0uaWQoKSkgCisgICAgICAgICAgICAg
ICAgdG91Y2hQb2ludHNbMF0gPSB0b3VjaFBvaW50OworICAgICAgICAgICAgZWxzZSBpZiAodG91
Y2hQb2ludHMuc2l6ZSgpPjEgJiYgIXRvdWNoUG9pbnRzWzFdLmlkKCkpIAorICAgICAgICAgICAg
ICAgIHRvdWNoUG9pbnRzWzFdID0gdG91Y2hQb2ludDsKKyAgICAgICAgICAgIGVsc2UgCisgICAg
ICAgICAgICAgICAgdG91Y2hQb2ludHMuYXBwZW5kKHRvdWNoUG9pbnQpOworCisgICAgICAgICAg
ICBzZW5kVG91Y2hFdmVudCgpOworICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0g
UUV2ZW50OjpLZXlQcmVzcworICAgICAgICAgICAgJiYgKChRS2V5RXZlbnQqKWV2ZW50KS0+a2V5
KCkgPT0gUXQ6OktleV9GCisgICAgICAgICAgICAmJiAoKFFLZXlFdmVudCopZXZlbnQpLT5tb2Rp
ZmllcnMoKSA9PSBRdDo6Q29udHJvbE1vZGlmaWVyKSB7CisKKyAgICAgICAgICAgIC8vIElmIHRo
ZSBrZXlib2FyZCBwb2ludCBpcyBhbHJlYWR5IHByZXNzZWQsIHJlbGVhc2UgaXQuCisgICAgICAg
ICAgICAvLyBPdGhlcndpc2UgY3JlYXRlIGl0IGFuZCBhcHBlbmQgdG8gdG91Y2hQb2ludHMuCisg
ICAgICAgICAgICBpZiAodG91Y2hQb2ludHMuc2l6ZSgpPjAgJiYgdG91Y2hQb2ludHNbMF0uaWQo
KSA9PSAxKSB7CisgICAgICAgICAgICAgICAgdG91Y2hQb2ludHNbMF0uc2V0U3RhdGUoUXQ6OlRv
dWNoUG9pbnRSZWxlYXNlZCk7CisgICAgICAgICAgICAgICAgc2VuZFRvdWNoRXZlbnQoKTsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAodG91Y2hQb2ludHMuc2l6ZSgpPjEgJiYgdG91Y2hQb2ludHNb
MV0uaWQoKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgdG91Y2hQb2ludHNbMV0uc2V0U3RhdGUo
UXQ6OlRvdWNoUG9pbnRSZWxlYXNlZCk7CisgICAgICAgICAgICAgICAgc2VuZFRvdWNoRXZlbnQo
KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgUVRvdWNoRXZlbnQ6OlRv
dWNoUG9pbnQgdG91Y2hQb2ludDsKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LnNldFN0YXRl
KFF0OjpUb3VjaFBvaW50UHJlc3NlZCk7CisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC5zZXRJ
ZCgxKTsKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LnNldFNjcmVlblBvcyhRQ3Vyc29yOjpw
b3MoKSk7CisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC5zZXRQb3Modmlldy0+bWFwRnJvbUds
b2JhbChRQ3Vyc29yOjpwb3MoKSkpOworICAgICAgICAgICAgICAgIHRvdWNoUG9pbnQuc2V0UHJl
c3N1cmUoMSk7ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdG91Y2hQb2ludHMuYXBwZW5k
KHRvdWNoUG9pbnQpOworICAgICAgICAgICAgICAgIHNlbmRUb3VjaEV2ZW50KCk7CisKKyAgICAg
ICAgICAgICAgICAvLyBBZnRlciBzZW5kaW5nIHRoZSBldmVudCwgY2hhbmdlIHRoZSB0b3VjaHBv
aW50IHN0YXRlIHRvIHN0YXRpb25hcnkKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50cy5sYXN0
KCkuc2V0U3RhdGUoUXQ6OlRvdWNoUG9pbnRTdGF0aW9uYXJ5KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorI2VuZGlmIC8vIFFUX1ZFUlNJ
T04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAwKQorCiAgICAgUVdlYlBhZ2UqIHdlYlBhZ2Uo
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHZpZXctPnBhZ2UoKTsKQEAgLTM2NSw2ICs0
NjYsMTMgQEAgcHJvdGVjdGVkIHNsb3RzOgogICAgICAgICB9CiAgICAgfQogCisjaWYgUVRfVkVS
U0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisgICAgdm9pZCBzZXRUb3VjaE1vY2tp
bmcoYm9vbCBvbikKKyAgICB7CisgICAgICAgIHRvdWNoTW9ja2luZyA9IG9uOworICAgIH0KKyNl
bmRpZgorCiBwdWJsaWMgc2xvdHM6CiAKICAgICB2b2lkIG5ld1dpbmRvdyhjb25zdCBRU3RyaW5n
ICZ1cmwgPSBRU3RyaW5nKCkpCkBAIC00NzQsNiArNTgyLDEyIEBAIHByaXZhdGU6CiAgICAgICAg
IHNob3dJbnNwZWN0b3JBY3Rpb24tPnNldFNob3J0Y3V0cyhRTGlzdDxRS2V5U2VxdWVuY2U+KCkg
PDwgUUtleVNlcXVlbmNlKHRyKCJGMTIiKSkpOwogICAgICAgICBzaG93SW5zcGVjdG9yQWN0aW9u
LT5jb25uZWN0KGluc3BlY3RvciwgU0lHTkFMKHZpc2libGVDaGFuZ2VkKGJvb2wpKSwgU0xPVChz
ZXRDaGVja2VkKGJvb2wpKSk7CiAKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0so
NCwgNiwgMCkKKyAgICAgICAgUUFjdGlvbiogdG91Y2hNb2NrQWN0aW9uID0gdG9vbHNNZW51LT5h
ZGRBY3Rpb24oIlRvZ2dsZSBtdWx0aXRvdWNoIG1vY2tpbmciLCB0aGlzLCBTTE9UKHNldFRvdWNo
TW9ja2luZyhib29sKSkpOworICAgICAgICB0b3VjaE1vY2tBY3Rpb24tPnNldENoZWNrYWJsZSh0
cnVlKTsKKyAgICAgICAgdG91Y2hNb2NrQWN0aW9uLT5zZXRDaGVja2VkKHRydWUpOworICAgICAg
ICB0b3VjaE1vY2tBY3Rpb24tPnNldFNob3J0Y3V0KFFLZXlTZXF1ZW5jZShRdDo6Q1RSTCB8IFF0
OjpBTFQgfCBRdDo6S2V5X1QpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIFFXZWJWaWV3KiB2aWV3
OwpAQCAtNDg1LDYgKzU5OSwxMSBAQCBwcml2YXRlOgogCiAgICAgUVN0cmluZ0xpc3QgdXJsTGlz
dDsKICAgICBRU3RyaW5nTGlzdE1vZGVsIHVybE1vZGVsOworCisjaWYgUVRfVkVSU0lPTiA+PSBR
VF9WRVJTSU9OX0NIRUNLKDQsIDYsIDApCisgICAgUUxpc3Q8UVRvdWNoRXZlbnQ6OlRvdWNoUG9p
bnQ+IHRvdWNoUG9pbnRzOworICAgIGJvb2wgdG91Y2hNb2NraW5nOworI2VuZGlmCiB9OwogCiBi
b29sIFdlYlBhZ2U6OmV4dGVuc2lvbihFeHRlbnNpb24gZXh0ZW5zaW9uLCBjb25zdCBFeHRlbnNp
b25PcHRpb24gKm9wdGlvbiwgRXh0ZW5zaW9uUmV0dXJuICpvdXRwdXQpCg==
</data>
<flag name="review"
          id="26890"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>44955</attachid>
            <date>2009-12-16 01:22:58 -0800</date>
            <delta_ts>2009-12-16 01:22:58 -0800</delta_ts>
            <desc>Test page for Touch DOM events. Supports two touchpoints.</desc>
            <filename>dualtouchtest.html</filename>
            <type>text/html</type>
            <size>4927</size>
            <attacher name="Kim Grönholm">kim.1.gronholm</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIj4KPGh0bWw+
CiAgICA8aGVhZD4gCiAgICAgICAgPHRpdGxlPk11bHRpLXRvdWNoIHRlc3Q8L3RpdGxlPgogICAg
ICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+IC8qIDwhW0NEQVRBWyAq
LwogICAgICAgICAgICBib2R5IHsKICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAg
ICAgICAgICAgIH0KCiAgICAgICAgICAgIGRpdiNjb250ZW50IHsKICAgICAgICAgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAgICAgICAgIGxlZnQ6IDBweDsKICAgICAgICAgICAg
ICAgIHRvcDogMHB4OwogICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAg
ICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAw
OwogICAgICAgICAgICAgICAgei1pbmRleDogLTE7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAg
IGRpdi5ib3ggewogICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICAgICAg
ICAgICAgbGVmdDogMHB4OwogICAgICAgICAgICAgICAgdG9wOiAwcHg7CiAgICAgICAgICAgICAg
ICB3aWR0aDogNDBweDsgIAogICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4OwogICAgICAgICAg
ICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgCiAgICAgICAgICAgIH0KICAgICAgICAgIC8qIF1dPiAq
LwogICAgICAgICAgPC9zdHlsZT4KICAgIDwvaGVhZD4KIAogICAgPGJvZHkgc3R5bGU9ImJhY2tn
cm91bmQ6IHdoaXRlOyI+CiAgICAgICAgPGgxIHN0eWxlPSJjb2xvcjogd2hpdGU7IiA+TXVsdGkt
dG91Y2ggdGVzdDwvaDE+CiAgICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj4KICAgICAgICAgICAg
PGNlbnRlcj4KICAgICAgICAgICAgPGRpdiBpZD0iY29udGVudCIgCiAgICAgICAgICAgICAgb25U
b3VjaFN0YXJ0PSJoYW5kbGVUb3VjaEV2ZW50KGV2ZW50KTsgcmV0dXJuIGZhbHNlOyIgCiAgICAg
ICAgICAgICAgb25Ub3VjaEVuZD0iaGFuZGxlVG91Y2hFdmVudChldmVudCk7IHJldHVybiBmYWxz
ZTsiCiAgICAgICAgICAgICAgb25Ub3VjaE1vdmU9ImhhbmRsZVRvdWNoRXZlbnQoZXZlbnQpOyBy
ZXR1cm4gZmFsc2U7Ij4KICAgICAgICAgICAgICAmbmJzcDsKICAgICAgICAgICAgPC9kaXY+CiAg
ICAgICAgICA8L2NlbnRlcj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPHNjcmlwdCBsYW5ndWFn
ZT0iamF2YXNjcmlwdCI+CiAgICAgICAgICAgIHZhciBjb2xvcnMgPSBbICIjQ0MwMDAwIiwgIiMw
MENDMDAiIF07CiAgICAgICAgICAKICAgICAgICAgICAgZnVuY3Rpb24gZmluZENsaWVudFBvcyhl
bGVtKSB7CiAgICAgICAgICAgICAgICB2YXIgY2xpZW50WCA9IDA7CiAgICAgICAgICAgICAgICB2
YXIgY2xpZW50WSA9IDA7CgogICAgICAgICAgICAgICAgaWYgKGVsZW0ub2Zmc2V0UGFyZW50KSB7
CiAgICAgICAgICAgICAgICAgICAgY2xpZW50WCA9IGVsZW0ub2Zmc2V0TGVmdDsKICAgICAgICAg
ICAgICAgICAgICBjbGllbnRZID0gZWxlbS5vZmZzZXRUb3A7CgogICAgICAgICAgICAgICAgICAg
IHdoaWxlIChlbGVtID0gZWxlbS5vZmZzZXRQYXJlbnQpIHsKCiAgICAgICAgICAgICAgICAgICAg
ICAgIGNsaWVudFggKz0gZWxlbS5vZmZzZXRMZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICBj
bGllbnRZICs9IGVsZW0ub2Zmc2V0VG9wOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBbY2xpZW50WCwgY2xpZW50WV07CiAgICAg
ICAgICAgIH0KCiAgICAgICAgICAgIGZ1bmN0aW9uIGhhbmRsZVRvdWNoRXZlbnQoZSkgewogICAg
ICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVu
dCIpOwogICAgICAgICAgICAgICAgdmFyIGNvbnRlbnRQb3MgPSBmaW5kQ2xpZW50UG9zKGNvbnRl
bnQpOwogICAgICAgICAgICAgICAgdmFyIGJveDsKICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgaWYoZS50b3VjaGVzLmxlbmd0aD09MCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAgICBpZiAoZS5jaGFuZ2VkVG91Y2hlc1swXSAmJgogICAgICAgICAgICAgICAgICAg
ICAgICAoYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcgKyBlLmNoYW5nZWRUb3Vj
aGVzWzBdLmlkZW50aWZpZXIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudC5yZW1v
dmVDaGlsZChib3gpOwogICAgICAgICAgICAgICAgICAgIGlmIChlLmNoYW5nZWRUb3VjaGVzWzFd
ICYmIAogICAgICAgICAgICAgICAgICAgICAgICAoYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveCcgKyBlLmNoYW5nZWRUb3VjaGVzWzFdLmlkZW50aWZpZXIpKSkKICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGVudC5yZW1vdmVDaGlsZChib3gpOwogICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZihlLnRvdWNoZXMubGVuZ3RoPT0xKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmIChlLmNoYW5nZWRUb3VjaGVz
WzBdLmlkZW50aWZpZXIhPWUudG91Y2hlc1swXS5pZGVudGlmaWVyKQogICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveCcgKyBlLmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIpOwogICAgICAgICAgICAg
ICAgICAgICAgICBjb250ZW50LnJlbW92ZUNoaWxkKGJveCk7ICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgfSBlbHNlIGlmIChlLmNoYW5nZWRUb3VjaGVzWzFdICYmIGUuY2hhbmdlZFRvdWNoZXNb
MV0uaWRlbnRpZmllciE9ZS50b3VjaGVzWzBdLmlkZW50aWZpZXIpCiAgICAgICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnYm94JyArIGUuY2hhbmdlZFRvdWNoZXNbMV0uaWRlbnRpZmllcik7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRlbnQucmVtb3ZlQ2hpbGQoYm94KTsgICAgICAKICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
IGlmKGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnICsgZS50b3VjaGVzWzBdLmlk
ZW50aWZpZXIpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGJveC5zdHls
ZS5sZWZ0ID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSBjb250ZW50UG9zWzBdIC0gMjAgKyAicHgi
OwogICAgICAgICAgICAgICAgICAgIGJveC5zdHlsZS50b3AgPSBlLnRvdWNoZXNbMF0uY2xpZW50
WSAtIGNvbnRlbnRQb3NbMV0gLSAyMCArICJweCI7CiAgICAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgIGJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwog
ICAgICAgICAgICAgICAgICAgIGJveC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2JveCcgKyBlLnRvdWNo
ZXNbMF0uaWRlbnRpZmllcik7CiAgICAgICAgICAgICAgICAgICAgYm94LnNldEF0dHJpYnV0ZSgn
Y2xhc3MnLCAnYm94Jyk7CiAgICAgICAgICAgICAgICAgICAgYm94LnN0eWxlLmxlZnQgPSBlLnRv
dWNoZXNbMF0uY2xpZW50WCAtIGNvbnRlbnRQb3NbMF0gLSAyMCArICJweCI7CiAgICAgICAgICAg
ICAgICAgICAgYm94LnN0eWxlLnRvcCA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gY29udGVudFBv
c1sxXSAtIDIwICsgInB4IjsKICAgICAgICAgICAgICAgICAgICBib3guc3R5bGUuYmFja2dyb3Vu
ZENvbG9yID0gY29sb3JzWzBdOwogICAgICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hp
bGQoYm94KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgaWYoZS50b3VjaGVzLmxlbmd0aD4xKQogICAgICAgICAgICAgICAgICAgIGlmKGJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnICsgZS50b3VjaGVzWzFdLmlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgYm94LnN0eWxlLmxl
ZnQgPSBlLnRvdWNoZXNbMV0uY2xpZW50WCAtIGNvbnRlbnRQb3NbMF0gLSAyMCArICJweCI7CiAg
ICAgICAgICAgICAgICAgICAgICAgIGJveC5zdHlsZS50b3AgPSBlLnRvdWNoZXNbMV0uY2xpZW50
WSAtIGNvbnRlbnRQb3NbMV0gLSAyMCArICJweCI7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgYm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
ZGl2Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJveC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Jv
eCcgKyBlLnRvdWNoZXNbMV0uaWRlbnRpZmllcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGJv
eC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2JveCcpOwogICAgICAgICAgICAgICAgICAgICAgICBi
b3guc3R5bGUubGVmdCA9IGUudG91Y2hlc1sxXS5jbGllbnRYIC0gY29udGVudFBvc1swXSAtIDIw
ICsgInB4IjsKICAgICAgICAgICAgICAgICAgICAgICAgYm94LnN0eWxlLnRvcCA9IGUudG91Y2hl
c1sxXS5jbGllbnRZIC0gY29udGVudFBvc1sxXSAtIDIwICsgInB4IjsgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICBib3guc3R5bGUuYmFja2dyb3VuZENvbG9yID0g
Y29sb3JzWzFdOwogICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGJv
eCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgIDwvc2NyaXB0
PgogICAgIDwvYm9keT4KPC9odG1sPgoKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45057</attachid>
            <date>2009-12-17 05:36:44 -0800</date>
            <delta_ts>2009-12-17 06:01:56 -0800</delta_ts>
            <desc>Adds multitouch mocking to QtLauncher</desc>
            <filename>multitouchmock2</filename>
            <type>text/plain</type>
            <size>6695</size>
            <attacher name="Kim Grönholm">kim.1.gronholm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDA5MDI0OTIuLmZhMTBhNTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDA5LTEyLTE2ICBLaW0g
R3LDtm5ob2xtICA8a2ltLmdyb25ob2xtQG5vbW92b2suY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gQWRkIHN1cHBvcnQgZm9yIG1vY2tp
bmcgdG91Y2ggZXZlbnRzIHdpdGggUXRMYXVuY2hlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI0MzQKKworICAgICAgICAqIFF0TGF1bmNoZXIvbWFp
bi5jcHA6CisgICAgICAgIChNYWluV2luZG93OjpNYWluV2luZG93KToKKyAgICAgICAgKE1haW5X
aW5kb3c6OnNlbmRUb3VjaEV2ZW50KToKKyAgICAgICAgKE1haW5XaW5kb3c6OmV2ZW50RmlsdGVy
KToKKyAgICAgICAgKE1haW5XaW5kb3c6OnNldFRvdWNoTW9ja2luZyk6CisgICAgICAgIChNYWlu
V2luZG93OjpzZXR1cFVJKToKKwogMjAwOS0xMi0xMyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmph
bWluLnBvdWxhaW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNt
YW5uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAgYi9XZWJLaXQv
cXQvUXRMYXVuY2hlci9tYWluLmNwcAppbmRleCAyMjg2NzEyLi41ZTMwZWE0IDEwMDY0NAotLS0g
YS9XZWJLaXQvcXQvUXRMYXVuY2hlci9tYWluLmNwcAorKysgYi9XZWJLaXQvcXQvUXRMYXVuY2hl
ci9tYWluLmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPFFWZWN0b3I+CiAKICNpbmNs
dWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8cWV2ZW50Lmg+CiAjaW5jbHVkZSA8cXdlYmVsZW1lbnQu
aD4KICNpbmNsdWRlIDxxd2ViZnJhbWUuaD4KICNpbmNsdWRlIDxxd2ViaW5zcGVjdG9yLmg+CkBA
IC0xNzgsNiArMTc5LDEyIEBAIHB1YmxpYzoKICAgICAgICAgdmlldyA9IG5ldyBXZWJWaWV3KHNw
bGl0dGVyKTsKICAgICAgICAgV2ViUGFnZSogcGFnZSA9IG5ldyBXZWJQYWdlKHZpZXcpOwogICAg
ICAgICB2aWV3LT5zZXRQYWdlKHBhZ2UpOworCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9O
X0NIRUNLKDQsIDYsIDApCisgICAgICAgIHZpZXctPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsK
KyAgICAgICAgdG91Y2hNb2NraW5nID0gZmFsc2U7CisjZW5kaWYKKwogICAgICAgICBjb25uZWN0
KHZpZXcsIFNJR05BTChsb2FkRmluaXNoZWQoYm9vbCkpLAogICAgICAgICAgICAgICAgIHRoaXMs
IFNMT1QobG9hZEZpbmlzaGVkKCkpKTsKICAgICAgICAgY29ubmVjdCh2aWV3LCBTSUdOQUwodGl0
bGVDaGFuZ2VkKGNvbnN0IFFTdHJpbmcmKSksCkBAIC0yMTksNiArMjI2LDk4IEBAIHB1YmxpYzoK
ICAgICAgICAgem9vbUxldmVscyA8PCAxMTAgPDwgMTIwIDw8IDEzMyA8PCAxNTAgPDwgMTcwIDw8
IDIwMCA8PCAyNDAgPDwgMzAwOwogICAgIH0KIAorI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lP
Tl9DSEVDSyg0LCA2LCAwKQorICAgIHZvaWQgc2VuZFRvdWNoRXZlbnQoKQorICAgIHsKKyAgICAg
ICAgaWYgKHRvdWNoUG9pbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBRRXZlbnQ6OlR5cGUgdHlwZSA9IFFFdmVudDo6VG91Y2hVcGRhdGU7CisgICAgICAgIGlm
ICh0b3VjaFBvaW50cy5zaXplKCkgPT0gMSkgeworICAgICAgICAgICAgaWYgKHRvdWNoUG9pbnRz
WzBdLnN0YXRlKCkgPT0gUXQ6OlRvdWNoUG9pbnRSZWxlYXNlZCkKKyAgICAgICAgICAgICAgICB0
eXBlID0gUUV2ZW50OjpUb3VjaEVuZDsKKyAgICAgICAgICAgIGVsc2UgaWYgKHRvdWNoUG9pbnRz
WzBdLnN0YXRlKCkgPT0gUXQ6OlRvdWNoUG9pbnRQcmVzc2VkKQorICAgICAgICAgICAgICAgIHR5
cGUgPSBRRXZlbnQ6OlRvdWNoQmVnaW47CisgICAgICAgIH0KKworICAgICAgICBRVG91Y2hFdmVu
dCB0b3VjaEV2KHR5cGUpOworICAgICAgICB0b3VjaEV2LnNldFRvdWNoUG9pbnRzKHRvdWNoUG9p
bnRzKTsKKyAgICAgICAgdmlldy0+cGFnZSgpLT5ldmVudCgmdG91Y2hFdik7CisKKyAgICAgICAg
Ly8gQWZ0ZXIgc2VuZGluZyB0aGUgZXZlbnQsIHJlbW92ZSBhbGwgdG91Y2hwb2ludHMgdGhhdCB3
ZXJlIHJlbGVhc2VkCisgICAgICAgIGlmICh0b3VjaFBvaW50c1swXS5zdGF0ZSgpID09IFF0OjpU
b3VjaFBvaW50UmVsZWFzZWQpCisgICAgICAgICAgICB0b3VjaFBvaW50cy5yZW1vdmVBdCgwKTsK
KyAgICAgICAgaWYgKHRvdWNoUG9pbnRzLnNpemUoKSA+IDEgJiYgdG91Y2hQb2ludHNbMV0uc3Rh
dGUoKSA9PSBRdDo6VG91Y2hQb2ludFJlbGVhc2VkKQorICAgICAgICAgICAgdG91Y2hQb2ludHMu
cmVtb3ZlQXQoMSk7ICAgICAgICAKKyAgICB9CisKKyAgICBib29sIGV2ZW50RmlsdGVyKFFPYmpl
Y3QqIG9iaiwgUUV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIGlmICghdG91Y2hNb2NraW5n
IHx8IG9iaiAhPSB2aWV3KQorICAgICAgICAgICAgcmV0dXJuIFFPYmplY3Q6OmV2ZW50RmlsdGVy
KG9iaiwgZXZlbnQpOworCisgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IFFFdmVudDo6TW91
c2VCdXR0b25QcmVzcworICAgICAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1v
dXNlQnV0dG9uUmVsZWFzZQorICAgICAgICAgICAgfHwgZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6
Ok1vdXNlQnV0dG9uRGJsQ2xpY2sKKyAgICAgICAgICAgIHx8IGV2ZW50LT50eXBlKCkgPT0gUUV2
ZW50OjpNb3VzZU1vdmUpIHsKKworICAgICAgICAgICAgUU1vdXNlRXZlbnQqIGV2ID0gc3RhdGlj
X2Nhc3Q8UU1vdXNlRXZlbnQqPihldmVudCk7CisgICAgICAgICAgICBpZiAoZXYtPnR5cGUoKSA9
PSBRRXZlbnQ6Ok1vdXNlTW92ZQorICAgICAgICAgICAgICAgICYmICEoZXYtPmJ1dHRvbnMoKSAm
IFF0OjpMZWZ0QnV0dG9uKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgICAgIFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50IHRvdWNoUG9pbnQ7CisgICAgICAgICAgICB0
b3VjaFBvaW50LnNldFN0YXRlKFF0OjpUb3VjaFBvaW50TW92ZWQpOworICAgICAgICAgICAgaWYg
KChldi0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0b25QcmVzcworICAgICAgICAgICAgICAg
ICB8fCBldi0+dHlwZSgpID09IFFFdmVudDo6TW91c2VCdXR0b25EYmxDbGljaykpCisgICAgICAg
ICAgICAgICAgdG91Y2hQb2ludC5zZXRTdGF0ZShRdDo6VG91Y2hQb2ludFByZXNzZWQpOworICAg
ICAgICAgICAgZWxzZSBpZiAoZXYtPnR5cGUoKSA9PSBRRXZlbnQ6Ok1vdXNlQnV0dG9uUmVsZWFz
ZSkKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LnNldFN0YXRlKFF0OjpUb3VjaFBvaW50UmVs
ZWFzZWQpOworCisgICAgICAgICAgICB0b3VjaFBvaW50LnNldElkKDApOworICAgICAgICAgICAg
dG91Y2hQb2ludC5zZXRTY3JlZW5Qb3MoZXYtPmdsb2JhbFBvcygpKTsKKyAgICAgICAgICAgIHRv
dWNoUG9pbnQuc2V0UG9zKGV2LT5wb3MoKSk7CisgICAgICAgICAgICB0b3VjaFBvaW50LnNldFBy
ZXNzdXJlKDEpOworCisgICAgICAgICAgICAvLyBJZiB0aGUgcG9pbnQgYWxyZWFkeSBleGlzdHMs
IHVwZGF0ZSBpdC4gT3RoZXJ3aXNlIGNyZWF0ZSBpdC4KKyAgICAgICAgICAgIGlmICh0b3VjaFBv
aW50cy5zaXplKCkgPiAwICYmICF0b3VjaFBvaW50c1swXS5pZCgpKSAKKyAgICAgICAgICAgICAg
ICB0b3VjaFBvaW50c1swXSA9IHRvdWNoUG9pbnQ7CisgICAgICAgICAgICBlbHNlIGlmICh0b3Vj
aFBvaW50cy5zaXplKCkgPiAxICYmICF0b3VjaFBvaW50c1sxXS5pZCgpKSAKKyAgICAgICAgICAg
ICAgICB0b3VjaFBvaW50c1sxXSA9IHRvdWNoUG9pbnQ7CisgICAgICAgICAgICBlbHNlIAorICAg
ICAgICAgICAgICAgIHRvdWNoUG9pbnRzLmFwcGVuZCh0b3VjaFBvaW50KTsKKworICAgICAgICAg
ICAgc2VuZFRvdWNoRXZlbnQoKTsKKyAgICAgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09
IFFFdmVudDo6S2V5UHJlc3MKKyAgICAgICAgICAgICYmIHN0YXRpY19jYXN0PFFLZXlFdmVudCo+
KGV2ZW50KS0+a2V5KCkgPT0gUXQ6OktleV9GCisgICAgICAgICAgICAmJiBzdGF0aWNfY2FzdDxR
S2V5RXZlbnQqPihldmVudCktPm1vZGlmaWVycygpID09IFF0OjpDb250cm9sTW9kaWZpZXIpIHsK
KworICAgICAgICAgICAgLy8gSWYgdGhlIGtleWJvYXJkIHBvaW50IGlzIGFscmVhZHkgcHJlc3Nl
ZCwgcmVsZWFzZSBpdC4KKyAgICAgICAgICAgIC8vIE90aGVyd2lzZSBjcmVhdGUgaXQgYW5kIGFw
cGVuZCB0byB0b3VjaFBvaW50cy4KKyAgICAgICAgICAgIGlmICh0b3VjaFBvaW50cy5zaXplKCkg
PiAwICYmIHRvdWNoUG9pbnRzWzBdLmlkKCkgPT0gMSkgeworICAgICAgICAgICAgICAgIHRvdWNo
UG9pbnRzWzBdLnNldFN0YXRlKFF0OjpUb3VjaFBvaW50UmVsZWFzZWQpOworICAgICAgICAgICAg
ICAgIHNlbmRUb3VjaEV2ZW50KCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHRvdWNoUG9pbnRz
LnNpemUoKSA+IDEgJiYgdG91Y2hQb2ludHNbMV0uaWQoKSA9PSAxKSB7CisgICAgICAgICAgICAg
ICAgdG91Y2hQb2ludHNbMV0uc2V0U3RhdGUoUXQ6OlRvdWNoUG9pbnRSZWxlYXNlZCk7CisgICAg
ICAgICAgICAgICAgc2VuZFRvdWNoRXZlbnQoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgUVRvdWNoRXZlbnQ6OlRvdWNoUG9pbnQgdG91Y2hQb2ludDsKKyAgICAgICAg
ICAgICAgICB0b3VjaFBvaW50LnNldFN0YXRlKFF0OjpUb3VjaFBvaW50UHJlc3NlZCk7CisgICAg
ICAgICAgICAgICAgdG91Y2hQb2ludC5zZXRJZCgxKTsKKyAgICAgICAgICAgICAgICB0b3VjaFBv
aW50LnNldFNjcmVlblBvcyhRQ3Vyc29yOjpwb3MoKSk7CisgICAgICAgICAgICAgICAgdG91Y2hQ
b2ludC5zZXRQb3Modmlldy0+bWFwRnJvbUdsb2JhbChRQ3Vyc29yOjpwb3MoKSkpOworICAgICAg
ICAgICAgICAgIHRvdWNoUG9pbnQuc2V0UHJlc3N1cmUoMSk7ICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgdG91Y2hQb2ludHMuYXBwZW5kKHRvdWNoUG9pbnQpOworICAgICAgICAgICAgICAg
IHNlbmRUb3VjaEV2ZW50KCk7CisKKyAgICAgICAgICAgICAgICAvLyBBZnRlciBzZW5kaW5nIHRo
ZSBldmVudCwgY2hhbmdlIHRoZSB0b3VjaHBvaW50IHN0YXRlIHRvIHN0YXRpb25hcnkKKyAgICAg
ICAgICAgICAgICB0b3VjaFBvaW50cy5sYXN0KCkuc2V0U3RhdGUoUXQ6OlRvdWNoUG9pbnRTdGF0
aW9uYXJ5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorI2VuZGlmIC8vIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0LCA2LCAw
KQorCiAgICAgUVdlYlBhZ2UqIHdlYlBhZ2UoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IHZpZXctPnBhZ2UoKTsKQEAgLTM2NSw2ICs0NjQsMTMgQEAgcHJvdGVjdGVkIHNsb3RzOgogICAg
ICAgICB9CiAgICAgfQogCisjaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDQsIDYs
IDApCisgICAgdm9pZCBzZXRUb3VjaE1vY2tpbmcoYm9vbCBvbikKKyAgICB7CisgICAgICAgIHRv
dWNoTW9ja2luZyA9IG9uOworICAgIH0KKyNlbmRpZgorCiBwdWJsaWMgc2xvdHM6CiAKICAgICB2
b2lkIG5ld1dpbmRvdyhjb25zdCBRU3RyaW5nICZ1cmwgPSBRU3RyaW5nKCkpCkBAIC00NzQsNiAr
NTgwLDExIEBAIHByaXZhdGU6CiAgICAgICAgIHNob3dJbnNwZWN0b3JBY3Rpb24tPnNldFNob3J0
Y3V0cyhRTGlzdDxRS2V5U2VxdWVuY2U+KCkgPDwgUUtleVNlcXVlbmNlKHRyKCJGMTIiKSkpOwog
ICAgICAgICBzaG93SW5zcGVjdG9yQWN0aW9uLT5jb25uZWN0KGluc3BlY3RvciwgU0lHTkFMKHZp
c2libGVDaGFuZ2VkKGJvb2wpKSwgU0xPVChzZXRDaGVja2VkKGJvb2wpKSk7CiAKKyNpZiBRVF9W
RVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNiwgMCkKKyAgICAgICAgUUFjdGlvbiogdG91
Y2hNb2NrQWN0aW9uID0gdG9vbHNNZW51LT5hZGRBY3Rpb24oIlRvZ2dsZSBtdWx0aXRvdWNoIG1v
Y2tpbmciLCB0aGlzLCBTTE9UKHNldFRvdWNoTW9ja2luZyhib29sKSkpOworICAgICAgICB0b3Vj
aE1vY2tBY3Rpb24tPnNldENoZWNrYWJsZSh0cnVlKTsKKyAgICAgICAgdG91Y2hNb2NrQWN0aW9u
LT5zZXRTaG9ydGN1dChRS2V5U2VxdWVuY2UoUXQ6OkNUUkwgfCBRdDo6QUxUIHwgUXQ6OktleV9U
KSk7CisjZW5kaWYKICAgICB9CiAKICAgICBRV2ViVmlldyogdmlldzsKQEAgLTQ4NSw2ICs1OTYs
MTEgQEAgcHJpdmF0ZToKIAogICAgIFFTdHJpbmdMaXN0IHVybExpc3Q7CiAgICAgUVN0cmluZ0xp
c3RNb2RlbCB1cmxNb2RlbDsKKworI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSyg0
LCA2LCAwKQorICAgIFFMaXN0PFFUb3VjaEV2ZW50OjpUb3VjaFBvaW50PiB0b3VjaFBvaW50czsK
KyAgICBib29sIHRvdWNoTW9ja2luZzsKKyNlbmRpZgogfTsKIAogYm9vbCBXZWJQYWdlOjpleHRl
bnNpb24oRXh0ZW5zaW9uIGV4dGVuc2lvbiwgY29uc3QgRXh0ZW5zaW9uT3B0aW9uICpvcHRpb24s
IEV4dGVuc2lvblJldHVybiAqb3V0cHV0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45071</attachid>
            <date>2009-12-17 08:14:41 -0800</date>
            <delta_ts>2009-12-17 09:21:47 -0800</delta_ts>
            <desc>The event delivery should go through the normal path</desc>
            <filename>fix_event_delivery.patch</filename>
            <type>text/plain</type>
            <size>1154</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IGVlYWQ5ZWMuLjkxOGQzNDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDA5LTEyLTE3ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW4ucG91bGFpbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBBZGQgc3VwcG9ydCBmb3Ig
bW9ja2luZyB0b3VjaCBldmVudHMgd2l0aCBRKEdWKUxhdW5jaGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQzNAorCisgICAgICAgIFRoZSBldmVu
dCBkZWxpdmVyeSBzaG91bGQgZ28gdGhyb3VnaCBRQ29yZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQo
KQorCisgICAgICAgICogUXRMYXVuY2hlci9tYWluLmNwcDoKKyAgICAgICAgKE1haW5XaW5kb3c6
OnNlbmRUb3VjaEV2ZW50KToKKwogMjAwOS0xMi0xNyAgS2ltIEdyw7ZuaG9sbSAgPGtpbS5ncm9u
aG9sbUBub21vdm9rLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9xdC9RdExhdW5jaGVyL21haW4uY3BwIGIvV2ViS2l0L3F0L1F0
TGF1bmNoZXIvbWFpbi5jcHAKaW5kZXggNWUzMGVhNC4uODhkMTdkNSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3F0L1F0TGF1bmNoZXIvbWFpbi5jcHAKKysrIGIvV2ViS2l0L3F0L1F0TGF1bmNoZXIvbWFp
bi5jcHAKQEAgLTI0Miw3ICsyNDIsNyBAQCBwdWJsaWM6CiAKICAgICAgICAgUVRvdWNoRXZlbnQg
dG91Y2hFdih0eXBlKTsKICAgICAgICAgdG91Y2hFdi5zZXRUb3VjaFBvaW50cyh0b3VjaFBvaW50
cyk7Ci0gICAgICAgIHZpZXctPnBhZ2UoKS0+ZXZlbnQoJnRvdWNoRXYpOworICAgICAgICBRQ29y
ZUFwcGxpY2F0aW9uOjpzZW5kRXZlbnQodmlldywgJnRvdWNoRXYpOwogCiAgICAgICAgIC8vIEFm
dGVyIHNlbmRpbmcgdGhlIGV2ZW50LCByZW1vdmUgYWxsIHRvdWNocG9pbnRzIHRoYXQgd2VyZSBy
ZWxlYXNlZAogICAgICAgICBpZiAodG91Y2hQb2ludHNbMF0uc3RhdGUoKSA9PSBRdDo6VG91Y2hQ
b2ludFJlbGVhc2VkKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>