<?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>18464</bug_id>
          
          <creation_ts>2008-04-13 12:19:30 -0700</creation_ts>
          <short_desc>incorrect translation of wxMouse event  to webkit mouse event</short_desc>
          <delta_ts>2008-07-08 15:36:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit wx</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Vassilev">avasilev</reporter>
          <assigned_to name="Kevin Ollivier">kevino</assigned_to>
          <cc>avasilev</cc>
    
    <cc>kevino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>77407</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-13 12:19:30 -0700</bug_when>
    <thetext>The constructor of PlatformMouseEvent in the wx port does not set the m_button member of the PlatformMouseEvent object on mouse button release event. THis causes assertion failure in WebCore which os observer as an access violation at address 0xbbadbeef when the yser clicks inside the client area of the wxBrowser test application. THis is observed only in the mingw port, in the msvc port doesnt happen, probably because the assertion is disabled there. THe attached patch fixes this as well as does more complete event translation from wxMouseEvent to webkit mouse event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77408</commentid>
    <comment_count>1</comment_count>
      <attachid>20502</attachid>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-13 12:21:15 -0700</bug_when>
    <thetext>Created attachment 20502
patch to MouseEventWx.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77409</commentid>
    <comment_count>2</comment_count>
      <attachid>20503</attachid>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-13 12:27:23 -0700</bug_when>
    <thetext>Created attachment 20503
fixed patch

oops, the patch was reversed, this is the fixed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77411</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-13 12:48:10 -0700</bug_when>
    <thetext>Could you provide more information on the assertion you get, and any stack trace you have? I think we should first try to understand what is causing the problem on MinGW, because in my reading of the original code, the code to set the button is run regardless of the event type. Your code does add a timestamp, and explicitly sets the click count for zero for a mouse move event, and perhaps either of these somehow fixes the problem? 

Also, the assertions are not disabled under MSVC8. They are under MSVC7 but wxWebKit is actually used in Windows applications built using MSVC8, and they do not cause this assertion. So there is something specific with the MinGW port happening, and I would like to figure out exactly what is triggering this problem before approving a fix. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77581</commentid>
    <comment_count>4</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-14 09:29:43 -0700</bug_when>
    <thetext>Mouse event crash stack trace (moved from bug #18465:

Program received signal SIGSEGV, Segmentation fault.
0x0050c42e in WebCore::EventTargetNode::dispatchMouseEvent (this=0xfc56f30, 
    event=@0x22f57c, eventType=@0x1086dcc, detail=1, relatedTarget=0x0)
    at dom/EventTargetNode.cpp:195
195         ASSERT(event.eventType() == MouseEventMoved || button != NoButton);
Current language:  auto; currently c++
(gdb) bt
#0  0x0050c42e in WebCore::EventTargetNode::dispatchMouseEvent (
    this=0xfc56f30, event=@0x22f57c, eventType=@0x1086dcc, detail=1, 
    relatedTarget=0x0) at dom/EventTargetNode.cpp:195
#1  0x0043b602 in WebCore::EventHandler::dispatchMouseEvent (this=0xfc3de70, 
    eventType=@0x1086dcc, targetNode=0xfc56f30, cancelable=true, clickCount=1, 
    mouseEvent=@0x22f57c, setUnder=false) at page/EventHandler.cpp:1262
#2  0x0043a4df in WebCore::EventHandler::handleMouseReleaseEvent (
    this=0xfc3de70, mouseEvent=@0x22f57c) at page/EventHandler.cpp:1079
#3  0x0040cbf7 in wxWebView::OnMouseEvents (this=0xfc3c638, event=@0x22f6bc)
    at WebView.cpp:483
#4  0x6cec7285 in wxEvtHandler::ProcessEventIfMatches (entry=@0x1085328, 
    handler=0xfc3c638, event=@0x22f6bc) at ../include/wx/app.h:287
#5  0x6cec75dc in wxEventHashTable::HandleEvent (this=0x1, event=@0x22f6bc, 
    self=0xfc3c638) at ../include/wx/event.h:2319
#6  0x6cec85d9 in wxEvtHandler::ProcessEvent (this=0xfc3c638, event=@0x22f6bc)
    at ../src/common/event.cpp:1287
#7  0x628d6996 in wxWindow::HandleMouseEvent (this=0xfc3c638, msg=167, x=167, 
    y=167, flags=167) at ../include/wx/window.h:612
#8  0x628d95c1 in wxWindow::MSWWindowProc (this=0xfc3c638, message=514, 
    wParam=0, lParam=9109751) at ../src/msw/window.cpp:2860
#9  0x628d1830 in wxWndProc (hWnd=0x7a0b20, message=514, wParam=0, 
    lParam=9109751) at ../src/msw/window.cpp:2594
#10 0x7e418734 in USER32!GetDC () from /cygdrive/c/WINDOWS/system32/user32.dll
#11 0x007a0b20 in WebCore::HTMLTokenizer::HTMLTokenizer (this=0x628d1780, 
    doc=0x7a0b20, reportErrors=220) at html/HTMLTokenizer.cpp:169
#12 0x7e418816 in USER32!GetDC () from /cygdrive/c/WINDOWS/system32/user32.dll
#13 0x628d1780 in wxWindowCreationHook::~wxWindowCreationHook ()
    at ../src/msw/window.cpp:2566
#14 0x7e4189cd in USER32!GetWindowLongW ()
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
   from /cygdrive/c/WINDOWS/system32/user32.dll
#15 0x00000000 in ?? ()
(gdb) 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77586</commentid>
    <comment_count>5</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-14 09:46:26 -0700</bug_when>
    <thetext>Looking at the stack trace you posted (please make sure to post the trace to the relevant bug in the future, as this is a record of all our debugging work, etc.), it looks to me like the assertion is fired due to a bug in your patch.

handleMouseReleaseEvent is triggering ASSERT(event.eventType() == MouseEventMoved || button != NoButton). Since it&apos;s a mouse release event, the eventType() should not be MouseEventMoved, so that leaves button != NoButton. And in your code, you do not set a button for the wxEVT_*_DCLICK case, so it makes sense that this assertion would get triggered. Are you getting this crash on an unmodified copy of MouseEventWx.cpp, or on your modified copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77925</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-17 06:43:01 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Looking at the stack trace you posted (please make sure to post the trace to
&gt; the relevant bug in the future, as this is a record of all our debugging work,
&gt; etc.), it looks to me like the assertion is fired due to a bug in your patch.
&gt; 
&gt; handleMouseReleaseEvent is triggering ASSERT(event.eventType() ==
&gt; MouseEventMoved || button != NoButton). Since it&apos;s a mouse release event, the
&gt; eventType() should not be MouseEventMoved, so that leaves button != NoButton.
&gt; And in your code, you do not set a button for the wxEVT_*_DCLICK case, so it
&gt; makes sense that this assertion would get triggered. Are you getting this crash
&gt; on an unmodified copy of MouseEventWx.cpp, or on your modified copy?
&gt; 
No no, I am getting the crash on an unmodified copy! After my patch I get no more crashes any more, and all works fine! Here is the original code:

PlatformMouseEvent::PlatformMouseEvent(const wxMouseEvent&amp; event, const wxPoint&amp; globalPoint)
    : m_position(event.GetPosition())
    , m_globalPosition(globalPoint)
    , m_clickCount(event.ButtonDClick() ? 2 : 1)
    , m_shiftKey(event.ShiftDown())
    , m_ctrlKey(event.CmdDown())
    , m_altKey(event.AltDown())
    , m_metaKey(event.MetaDown()) // FIXME: We&apos;ll have to test other browsers
{
    wxEventType type = event.GetEventType();
    m_eventType = MouseEventMoved;
    
    if (type == wxEVT_LEFT_DOWN || type == wxEVT_MIDDLE_DOWN || type == wxEVT_RIGHT_DOWN)
        m_eventType = MouseEventPressed;
    
    else if (type == wxEVT_LEFT_UP || type == wxEVT_MIDDLE_UP || type == wxEVT_RIGHT_UP || 
                type == wxEVT_LEFT_DCLICK || type == wxEVT_MIDDLE_DCLICK || type == wxEVT_RIGHT_DCLICK)
        m_eventType = MouseEventReleased;

    else if (type == wxEVT_MOTION)
        m_eventType = MouseEventMoved;

    if (event.LeftIsDown())
        m_button = LeftButton;
    else if (event.RightIsDown())
        m_button = RightButton;
    else if (event.MiddleIsDown())
        m_button = MiddleButton;
}

So you can see that m_button is set ONLY on mouse down events, not on mouse release or dclick events! What triggers the crash is exactly mouse release or doubleclick event.  You are completely right that my patch leaved m_button unset on mouse doubleclick, I figured out this few days ago and fixed it as well, but didn&apos;t want to flood with patches. So now I will attach my complete patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77927</commentid>
    <comment_count>7</comment_count>
      <attachid>20626</attachid>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-17 06:45:27 -0700</bug_when>
    <thetext>Created attachment 20626
new fixed MouseEventWx.cpp patch

Here is the new fixed patch to MouseEventWx.cpp that should handle all types of mouse events correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77928</commentid>
    <comment_count>8</comment_count>
      <attachid>20626</attachid>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-17 06:56:03 -0700</bug_when>
    <thetext>Comment on attachment 20626
new fixed MouseEventWx.cpp patch

--- ./webkit_mingw/WebCore/platform/wx/MouseEventWx.cpp	2008-04-04 15:02:52.968750000 +0300
+++ ./webkit_clean/WebCore/platform/wx/MouseEventWx.cpp	2008-04-14 05:04:15.191625000 +0300
@@ -25,7 +25,7 @@
 
 #include &quot;config.h&quot;
 #include &quot;PlatformMouseEvent.h&quot;
-
+#include &quot;SystemTime.h&quot;
 #include &lt;wx/defs.h&gt;
 #include &lt;wx/event.h&gt;
 
@@ -34,7 +34,6 @@
 PlatformMouseEvent::PlatformMouseEvent(const wxMouseEvent&amp; event, const wxPoint&amp; globalPoint)
     : m_position(event.GetPosition())
     , m_globalPosition(globalPoint)
-    , m_clickCount(event.ButtonDClick() ? 2 : 1)
     , m_shiftKey(event.ShiftDown())
     , m_ctrlKey(event.CmdDown())
     , m_altKey(event.AltDown())
@@ -43,22 +42,58 @@
     wxEventType type = event.GetEventType();
     m_eventType = MouseEventMoved;
     
-    if (type == wxEVT_LEFT_DOWN || type == wxEVT_MIDDLE_DOWN || type == wxEVT_RIGHT_DOWN)
-        m_eventType = MouseEventPressed;
-    
-    else if (type == wxEVT_LEFT_UP || type == wxEVT_MIDDLE_UP || type == wxEVT_RIGHT_UP || 
-                type == wxEVT_LEFT_DCLICK || type == wxEVT_MIDDLE_DCLICK || type == wxEVT_RIGHT_DCLICK)
-        m_eventType = MouseEventReleased;
+//strange, the compiler doeswnt allow us to use a switch here,  with wxEVT_xxx cases, even though they are of the enum type of the &apos;type&apos; variable
+//so we use if-s instead
+	if (type == wxEVT_LEFT_DOWN)
+	  {
+		m_eventType = MouseEventPressed;
+		m_button = LeftButton;
+	  }
+	else if (type == wxEVT_LEFT_UP)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = LeftButton; 
+	  }
+	else if (type == wxEVT_RIGHT_DOWN)
+	  {
+		m_eventType = MouseEventPressed;
+		m_button = RightButton;
+	  }
+	else if (type == wxEVT_RIGHT_UP)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = RightButton;
+	  }
+	else if (type == wxEVT_MIDDLE_DOWN)
+	  {
+		m_eventType = MouseEventPressed;
+		m_button = MiddleButton;
+	  }
+    else if (type == wxEVT_MIDDLE_UP)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = MiddleButton;
+	  }
+	else if (type == wxEVT_LEFT_DCLICK)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = LeftButton;
+	  }
+	else if (type == wxEVT_MIDDLE_DCLICK)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = MiddleButton;
+	  }	
+	else if (type == wxEVT_RIGHT_DCLICK)
+	  {
+		m_eventType = MouseEventReleased;
+		m_button = RightButton;
+	  }
+	if (m_eventType == MouseEventMoved)
+		m_clickCount = 0;
+	  else
+		m_clickCount = event.ButtonDClick() ? 2 : 1;
 
-    else if (type == wxEVT_MOTION)
-        m_eventType = MouseEventMoved;
-
-    if (event.LeftIsDown())
-        m_button = LeftButton;
-    else if (event.RightIsDown())
-        m_button = RightButton;
-    else if (event.MiddleIsDown())
-        m_button = MiddleButton;
+	m_timestamp = WebCore::currentTime();
 }
-
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77930</commentid>
    <comment_count>9</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-17 07:02:45 -0700</bug_when>
    <thetext>The patch is in Comment #8, sorry I re-posted the old patch by mistake in Comment #7, so I marked it obsolete (too much stuff to track already, so hence the mistake)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78232</commentid>
    <comment_count>10</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-18 22:47:56 -0700</bug_when>
    <thetext>Sorry, you&apos;re right, I was looking at what I thought the code should have been doing rather than what it does. :-) Testing now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78234</commentid>
    <comment_count>11</comment_count>
      <attachid>20685</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-18 23:47:06 -0700</bug_when>
    <thetext>Created attachment 20685
Comment #8 reformatted as patch

In the future, please make sure to always attach updates to the patch tracker as a new patch. To land any patch it needs to get an r+ first, but I can&apos;t do that if there is no patch. :)

Also, please make sure patches adhere to the WebKit style guidelines. The guidelines are specified here: 

http://webkit.org/coding/coding-style.html

I&apos;ve updated this current patch for you so because I&apos;d like to go ahead and land it, but in the future, please make sure it adheres to the guidelines before submitting.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78235</commentid>
    <comment_count>12</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-18 23:48:34 -0700</bug_when>
    <thetext>Sorry, one more comment. In the future, also please add a ChangeLog entry. You can use the script WebKitTools/Scripts/prepare-ChangeLog &lt;files or directories&gt; to automatically generate a basic ChangeLog entry for your changes. Then just write a description and make sure it&apos;s included with the patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78236</commentid>
    <comment_count>13</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-18 23:58:04 -0700</bug_when>
    <thetext>Actually, looking at this code again, before I commit I want to ask you - did event.Button() not work for you? I think the real mistake in the original was to check which button was down when setting it, rather than to just check the Button() parameter. This would allow us to avoid having to write all those long if statements and just change the if (event.LeftIsDown()) statements into if (event.Button() == wxMOUSE_BTN_LEFT). 

Could you let me know if this works for you? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78298</commentid>
    <comment_count>14</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-20 03:32:28 -0700</bug_when>
    <thetext>I don&apos;t quite understand what you mean - there is no event.LeftIsDown() call in the code I propose. All checks are done against the event type. Looking at the wx documentation of wxMouseEvent::Button() I see your point. But this would give us only the button - left, middle or right, and no info whather it was released pressed or doubleclicked - and we need also this code - note that in the ifs we set not only m_button to left right or middle, but also m_eventType which cahn be pressed released or dclicked. So I think we can&apos;t avoid the if&apos;s here. 
Thank you for the advice and the formatting of the patch - the best way to teach somebody how to do something is to give example :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78306</commentid>
    <comment_count>15</comment_count>
      <attachid>20700</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-20 09:36:00 -0700</bug_when>
    <thetext>Created attachment 20700
Fix that uses event.Button() to set the button.

Here is an example of a &apos;complete&apos; patch that also illustrates what I was saying about using event.Button() instead of event.XYZIsDown(). Unfortunately, since I haven&apos;t actually found a way to reproduce your assert, you&apos;ll have to let me know if this new patch works for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78332</commentid>
    <comment_count>16</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-20 15:12:32 -0700</bug_when>
    <thetext>Your example patch deals with one of 2 things necessary - set the button type (left, right, or middle). But what about m_eventType? was the right, left or middle button pressed, released or doubleclicked? THis is why I think we can&apos;t do without all the if&apos;s - they do both tasks at the same time -  setting the button kind (left right middle) AND the event type (press release dclick)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78335</commentid>
    <comment_count>17</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-04-20 15:51:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Your example patch deals with one of 2 things necessary - set the button type
&gt; (left, right, or middle). But what about m_eventType? was the right, left or
&gt; middle button pressed, released or doubleclicked? THis is why I think we can&apos;t
&gt; do without all the if&apos;s - they do both tasks at the same time -  setting the
&gt; button kind (left right middle) AND the event type (press release dclick)
&gt; 

My patch doesn&apos;t deal with m_eventType because there&apos;s already code that sets m_eventType in WebKit trunk. See (http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/platform/wx/MouseEventWx.cpp) 

What I&apos;ve submitted is a patch to the existing code, not a re-write of it. I&apos;m still not sure what the code in trunk + this patch doesn&apos;t do that your code does. If we can do the same thing in 20 lines rather than 50, I&apos;d much rather do that because it&apos;s easier to debug and maintain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78345</commentid>
    <comment_count>18</comment_count>
    <who name="Alexander Vassilev">avasilev</who>
    <bug_when>2008-04-20 16:43:42 -0700</bug_when>
    <thetext>Ahh, ok ok, now I see what you were trying to say with the last posts. Ok I will test it when I have time, I tihink your proposed patch will fix the assertion failure. THE reason I rewrote the whole method is: efficiency - consider the checks that have to be actually done in the old code and in my proposed code. Also another reason was - unification - I do repeated similar checks, even though the code takes more lines its symmetric and I think simpler to grasp - its just one type of check repeated many times, so more lines but less cpu cycles and simpler C constructs used. But the last is just my opinion, I&apos;m far from the idea of imposing it. So I will post an update here if your patch fixes the assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79332</commentid>
    <comment_count>19</comment_count>
      <attachid>20700</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-01 00:03:51 -0700</bug_when>
    <thetext>Comment on attachment 20700
Fix that uses event.Button() to set the button.

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>79411</commentid>
    <comment_count>20</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-05-01 22:20:32 -0700</bug_when>
    <thetext>Landed in r32798, thanks Alexander and Eric! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85354</commentid>
    <comment_count>21</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-07-07 10:35:45 -0700</bug_when>
    <thetext>This fix wasn&apos;t complete. It doesn&apos;t properly handle mouse up cases, like the previous fix did. We need to check for both button changes and button down (where the button is pressed but its state didn&apos;t change from the last event).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85359</commentid>
    <comment_count>22</comment_count>
      <attachid>22136</attachid>
    <who name="Kevin Watters">kevinwatters</who>
    <bug_when>2008-07-07 10:48:41 -0700</bug_when>
    <thetext>Created attachment 22136
Patch to use wxMouseEvent::LeftIsDown and related functions

With the above changes, text selection isn&apos;t working on MSW. WebKit is expecting m_button to reflect a currently depressed button as well as if a button is changing state--so wxMouseEvent::Button isn&apos;t enough, since it only shows button changes.

The attached patch includes calls to wxMouseEvent::LeftIsDown() and sibling functions to check the current button state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85496</commentid>
    <comment_count>23</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2008-07-08 15:36:11 -0700</bug_when>
    <thetext>Landed in r35066, thanks! :-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20502</attachid>
            <date>2008-04-13 12:21:15 -0700</date>
            <delta_ts>2008-04-13 12:29:11 -0700</delta_ts>
            <desc>patch to MouseEventWx.cpp</desc>
            <filename>mouseEventWx.patch</filename>
            <type>text/plain</type>
            <size>2600</size>
            <attacher name="Alexander Vassilev">avasilev</attacher>
            
              <data encoding="base64">LS0tIC4vd2Via2l0X2NsZWFuL1dlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAky
MDA4LTA0LTEzIDE4OjMzOjAxLjc1NDEyNTAwMCArMDMwMAorKysgLi93ZWJraXRfbWluZ3cvV2Vi
Q29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCTIwMDgtMDQtMDQgMTU6MDI6NTIuOTY4
NzUwMDAwICswMzAwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisK
ICNpbmNsdWRlIDx3eC9kZWZzLmg+CiAjaW5jbHVkZSA8d3gvZXZlbnQuaD4KIApAQCAtMzQsNiAr
MzQsNyBAQAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3Qgd3hN
b3VzZUV2ZW50JiBldmVudCwgY29uc3Qgd3hQb2ludCYgZ2xvYmFsUG9pbnQpCiAgICAgOiBtX3Bv
c2l0aW9uKGV2ZW50LkdldFBvc2l0aW9uKCkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2Jh
bFBvaW50KQorICAgICwgbV9jbGlja0NvdW50KGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDEp
CiAgICAgLCBtX3NoaWZ0S2V5KGV2ZW50LlNoaWZ0RG93bigpKQogICAgICwgbV9jdHJsS2V5KGV2
ZW50LkNtZERvd24oKSkKICAgICAsIG1fYWx0S2V5KGV2ZW50LkFsdERvd24oKSkKQEAgLTQyLDQ4
ICs0MywyMiBAQAogICAgIHd4RXZlbnRUeXBlIHR5cGUgPSBldmVudC5HZXRFdmVudFR5cGUoKTsK
ICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKICAgICAKLS8vc3RyYW5nZSwgdGhl
IGNvbXBpbGVyIGRvZXN3bnQgYWxsb3cgdXMgdG8gdXNlIGEgc3dpdGNoIGhlcmUsICB3aXRoIHd4
RVZUX3h4eCBjYXNlcywgZXZlbiB0aG91Z2ggdGhleSBhcmUgb2YgdGhlIGVudW0gdHlwZSBvZiB0
aGUgJ3R5cGUnIHZhcmlhYmxlCi0vL3NvIHdlIHVzZSBpZi1zIGluc3RlYWQKLQlpZiAodHlwZSA9
PSB3eEVWVF9MRUZUX0RPV04pCi0JICB7Ci0JCW1fZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNz
ZWQ7Ci0JCW1fYnV0dG9uID0gTGVmdEJ1dHRvbjsKLQkgIH0KLQllbHNlIGlmICh0eXBlID09IHd4
RVZUX0xFRlRfVVApCi0JICB7Ci0JCW1fZXZlbnRUeXBlID0gTW91c2VFdmVudFJlbGVhc2VkOwot
CQltX2J1dHRvbiA9IExlZnRCdXR0b247IAotCSAgfQotCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRf
UklHSFRfRE9XTikKLQkgIHsKLQkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UHJlc3NlZDsKLQkJ
bV9idXR0b24gPSBSaWdodEJ1dHRvbjsKLQkgIH0KLQllbHNlIGlmICh0eXBlID09IHd4RVZUX1JJ
R0hUX1VQKQotCSAgewotCQltX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKLQkJbV9i
dXR0b24gPSBSaWdodEJ1dHRvbjsKLQkgIH0KLQllbHNlIGlmICh0eXBlID09IHd4RVZUX01JRERM
RV9ET1dOKQotCSAgewotCQltX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRQcmVzc2VkOwotCQltX2J1
dHRvbiA9IE1pZGRsZUJ1dHRvbjsKLQkgIH0KLSAgICBlbHNlIGlmICh0eXBlID09IHd4RVZUX01J
RERMRV9VUCkKLQkgIHsKLQkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFzZWQ7Ci0JCW1f
YnV0dG9uID0gTWlkZGxlQnV0dG9uOwotCSAgfQotCWVsc2UgaWYgKCh0eXBlID09IHd4RVZUX0xF
RlRfRENMSUNLKSB8fCAodHlwZSA9PSB3eEVWVF9NSURETEVfRENMSUNLKQotCQl8fCAodHlwZSA9
PSB3eEVWVF9SSUdIVF9EQ0xJQ0spKQotCSAgbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFz
ZWQ7Ci0JCi0JCi0JaWYgKG1fZXZlbnRUeXBlID09IE1vdXNlRXZlbnRNb3ZlZCkKLQkJbV9jbGlj
a0NvdW50ID0gMDsKLQkgIGVsc2UKLQkJbV9jbGlja0NvdW50ID0gZXZlbnQuQnV0dG9uRENsaWNr
KCkgPyAyIDogMTsKKyAgICBpZiAodHlwZSA9PSB3eEVWVF9MRUZUX0RPV04gfHwgdHlwZSA9PSB3
eEVWVF9NSURETEVfRE9XTiB8fCB0eXBlID09IHd4RVZUX1JJR0hUX0RPV04pCisgICAgICAgIG1f
ZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNzZWQ7CisgICAgCisgICAgZWxzZSBpZiAodHlwZSA9
PSB3eEVWVF9MRUZUX1VQIHx8IHR5cGUgPT0gd3hFVlRfTUlERExFX1VQIHx8IHR5cGUgPT0gd3hF
VlRfUklHSFRfVVAgfHwgCisgICAgICAgICAgICAgICAgdHlwZSA9PSB3eEVWVF9MRUZUX0RDTElD
SyB8fCB0eXBlID09IHd4RVZUX01JRERMRV9EQ0xJQ0sgfHwgdHlwZSA9PSB3eEVWVF9SSUdIVF9E
Q0xJQ0spCisgICAgICAgIG1fZXZlbnRUeXBlID0gTW91c2VFdmVudFJlbGVhc2VkOwogCi0JbV90
aW1lc3RhbXAgPSBXZWJDb3JlOjpjdXJyZW50VGltZSgpOworICAgIGVsc2UgaWYgKHR5cGUgPT0g
d3hFVlRfTU9USU9OKQorICAgICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKKwor
ICAgIGlmIChldmVudC5MZWZ0SXNEb3duKCkpCisgICAgICAgIG1fYnV0dG9uID0gTGVmdEJ1dHRv
bjsKKyAgICBlbHNlIGlmIChldmVudC5SaWdodElzRG93bigpKQorICAgICAgICBtX2J1dHRvbiA9
IFJpZ2h0QnV0dG9uOworICAgIGVsc2UgaWYgKGV2ZW50Lk1pZGRsZUlzRG93bigpKQorICAgICAg
ICBtX2J1dHRvbiA9IE1pZGRsZUJ1dHRvbjsKIH0KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20503</attachid>
            <date>2008-04-13 12:27:23 -0700</date>
            <delta_ts>2008-04-17 06:45:27 -0700</delta_ts>
            <desc>fixed patch</desc>
            <filename>mouseEventWx.patch</filename>
            <type>text/plain</type>
            <size>2600</size>
            <attacher name="Alexander Vassilev">avasilev</attacher>
            
              <data encoding="base64">LS0tIC4vd2Via2l0X21pbmd3L1dlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAky
MDA4LTA0LTA0IDE1OjAyOjUyLjk2ODc1MDAwMCArMDMwMAorKysgLi93ZWJraXRfY2xlYW4vV2Vi
Q29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCTIwMDgtMDQtMTMgMTg6MzM6MDEuNzU0
MTI1MDAwICswMzAwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLQorI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIK
ICNpbmNsdWRlIDx3eC9kZWZzLmg+CiAjaW5jbHVkZSA8d3gvZXZlbnQuaD4KIApAQCAtMzQsNyAr
MzQsNiBAQAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3Qgd3hN
b3VzZUV2ZW50JiBldmVudCwgY29uc3Qgd3hQb2ludCYgZ2xvYmFsUG9pbnQpCiAgICAgOiBtX3Bv
c2l0aW9uKGV2ZW50LkdldFBvc2l0aW9uKCkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2Jh
bFBvaW50KQotICAgICwgbV9jbGlja0NvdW50KGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDEp
CiAgICAgLCBtX3NoaWZ0S2V5KGV2ZW50LlNoaWZ0RG93bigpKQogICAgICwgbV9jdHJsS2V5KGV2
ZW50LkNtZERvd24oKSkKICAgICAsIG1fYWx0S2V5KGV2ZW50LkFsdERvd24oKSkKQEAgLTQzLDIy
ICs0Miw0OCBAQAogICAgIHd4RXZlbnRUeXBlIHR5cGUgPSBldmVudC5HZXRFdmVudFR5cGUoKTsK
ICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKICAgICAKLSAgICBpZiAodHlwZSA9
PSB3eEVWVF9MRUZUX0RPV04gfHwgdHlwZSA9PSB3eEVWVF9NSURETEVfRE9XTiB8fCB0eXBlID09
IHd4RVZUX1JJR0hUX0RPV04pCi0gICAgICAgIG1fZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNz
ZWQ7Ci0gICAgCi0gICAgZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9MRUZUX1VQIHx8IHR5cGUgPT0g
d3hFVlRfTUlERExFX1VQIHx8IHR5cGUgPT0gd3hFVlRfUklHSFRfVVAgfHwgCi0gICAgICAgICAg
ICAgICAgdHlwZSA9PSB3eEVWVF9MRUZUX0RDTElDSyB8fCB0eXBlID09IHd4RVZUX01JRERMRV9E
Q0xJQ0sgfHwgdHlwZSA9PSB3eEVWVF9SSUdIVF9EQ0xJQ0spCi0gICAgICAgIG1fZXZlbnRUeXBl
ID0gTW91c2VFdmVudFJlbGVhc2VkOworLy9zdHJhbmdlLCB0aGUgY29tcGlsZXIgZG9lc3dudCBh
bGxvdyB1cyB0byB1c2UgYSBzd2l0Y2ggaGVyZSwgIHdpdGggd3hFVlRfeHh4IGNhc2VzLCBldmVu
IHRob3VnaCB0aGV5IGFyZSBvZiB0aGUgZW51bSB0eXBlIG9mIHRoZSAndHlwZScgdmFyaWFibGUK
Ky8vc28gd2UgdXNlIGlmLXMgaW5zdGVhZAorCWlmICh0eXBlID09IHd4RVZUX0xFRlRfRE9XTikK
KwkgIHsKKwkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UHJlc3NlZDsKKwkJbV9idXR0b24gPSBM
ZWZ0QnV0dG9uOworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTEVGVF9VUCkKKwkgIHsK
KwkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFzZWQ7CisJCW1fYnV0dG9uID0gTGVmdEJ1
dHRvbjsgCisJICB9CisJZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9SSUdIVF9ET1dOKQorCSAgewor
CQltX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRQcmVzc2VkOworCQltX2J1dHRvbiA9IFJpZ2h0QnV0
dG9uOworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfUklHSFRfVVApCisJICB7CisJCW1f
ZXZlbnRUeXBlID0gTW91c2VFdmVudFJlbGVhc2VkOworCQltX2J1dHRvbiA9IFJpZ2h0QnV0dG9u
OworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTUlERExFX0RPV04pCisJICB7CisJCW1f
ZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNzZWQ7CisJCW1fYnV0dG9uID0gTWlkZGxlQnV0dG9u
OworCSAgfQorICAgIGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTUlERExFX1VQKQorCSAgeworCQlt
X2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKKwkJbV9idXR0b24gPSBNaWRkbGVCdXR0
b247CisJICB9CisJZWxzZSBpZiAoKHR5cGUgPT0gd3hFVlRfTEVGVF9EQ0xJQ0spIHx8ICh0eXBl
ID09IHd4RVZUX01JRERMRV9EQ0xJQ0spCisJCXx8ICh0eXBlID09IHd4RVZUX1JJR0hUX0RDTElD
SykpCisJICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKKwkKKwkKKwlpZiAobV9l
dmVudFR5cGUgPT0gTW91c2VFdmVudE1vdmVkKQorCQltX2NsaWNrQ291bnQgPSAwOworCSAgZWxz
ZQorCQltX2NsaWNrQ291bnQgPSBldmVudC5CdXR0b25EQ2xpY2soKSA/IDIgOiAxOwogCi0gICAg
ZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9NT1RJT04pCi0gICAgICAgIG1fZXZlbnRUeXBlID0gTW91
c2VFdmVudE1vdmVkOwotCi0gICAgaWYgKGV2ZW50LkxlZnRJc0Rvd24oKSkKLSAgICAgICAgbV9i
dXR0b24gPSBMZWZ0QnV0dG9uOwotICAgIGVsc2UgaWYgKGV2ZW50LlJpZ2h0SXNEb3duKCkpCi0g
ICAgICAgIG1fYnV0dG9uID0gUmlnaHRCdXR0b247Ci0gICAgZWxzZSBpZiAoZXZlbnQuTWlkZGxl
SXNEb3duKCkpCi0gICAgICAgIG1fYnV0dG9uID0gTWlkZGxlQnV0dG9uOworCW1fdGltZXN0YW1w
ID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKIH0KLQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20626</attachid>
            <date>2008-04-17 06:45:27 -0700</date>
            <delta_ts>2008-04-17 07:08:55 -0700</delta_ts>
            <desc>new fixed MouseEventWx.cpp patch</desc>
            <filename>newmouseevent3.patch</filename>
            <type>text/plain</type>
            <size>2600</size>
            <attacher name="Alexander Vassilev">avasilev</attacher>
            
              <data encoding="base64">LS0tIC4vd2Via2l0X21pbmd3L1dlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAky
MDA4LTA0LTA0IDE1OjAyOjUyLjk2ODc1MDAwMCArMDMwMAorKysgLi93ZWJraXRfY2xlYW4vV2Vi
Q29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCTIwMDgtMDQtMTMgMTg6MzM6MDEuNzU0
MTI1MDAwICswMzAwCkBAIC0yNSw3ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLQorI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIK
ICNpbmNsdWRlIDx3eC9kZWZzLmg+CiAjaW5jbHVkZSA8d3gvZXZlbnQuaD4KIApAQCAtMzQsNyAr
MzQsNiBAQAogUGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3Qgd3hN
b3VzZUV2ZW50JiBldmVudCwgY29uc3Qgd3hQb2ludCYgZ2xvYmFsUG9pbnQpCiAgICAgOiBtX3Bv
c2l0aW9uKGV2ZW50LkdldFBvc2l0aW9uKCkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2Jh
bFBvaW50KQotICAgICwgbV9jbGlja0NvdW50KGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDEp
CiAgICAgLCBtX3NoaWZ0S2V5KGV2ZW50LlNoaWZ0RG93bigpKQogICAgICwgbV9jdHJsS2V5KGV2
ZW50LkNtZERvd24oKSkKICAgICAsIG1fYWx0S2V5KGV2ZW50LkFsdERvd24oKSkKQEAgLTQzLDIy
ICs0Miw0OCBAQAogICAgIHd4RXZlbnRUeXBlIHR5cGUgPSBldmVudC5HZXRFdmVudFR5cGUoKTsK
ICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKICAgICAKLSAgICBpZiAodHlwZSA9
PSB3eEVWVF9MRUZUX0RPV04gfHwgdHlwZSA9PSB3eEVWVF9NSURETEVfRE9XTiB8fCB0eXBlID09
IHd4RVZUX1JJR0hUX0RPV04pCi0gICAgICAgIG1fZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNz
ZWQ7Ci0gICAgCi0gICAgZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9MRUZUX1VQIHx8IHR5cGUgPT0g
d3hFVlRfTUlERExFX1VQIHx8IHR5cGUgPT0gd3hFVlRfUklHSFRfVVAgfHwgCi0gICAgICAgICAg
ICAgICAgdHlwZSA9PSB3eEVWVF9MRUZUX0RDTElDSyB8fCB0eXBlID09IHd4RVZUX01JRERMRV9E
Q0xJQ0sgfHwgdHlwZSA9PSB3eEVWVF9SSUdIVF9EQ0xJQ0spCi0gICAgICAgIG1fZXZlbnRUeXBl
ID0gTW91c2VFdmVudFJlbGVhc2VkOworLy9zdHJhbmdlLCB0aGUgY29tcGlsZXIgZG9lc3dudCBh
bGxvdyB1cyB0byB1c2UgYSBzd2l0Y2ggaGVyZSwgIHdpdGggd3hFVlRfeHh4IGNhc2VzLCBldmVu
IHRob3VnaCB0aGV5IGFyZSBvZiB0aGUgZW51bSB0eXBlIG9mIHRoZSAndHlwZScgdmFyaWFibGUK
Ky8vc28gd2UgdXNlIGlmLXMgaW5zdGVhZAorCWlmICh0eXBlID09IHd4RVZUX0xFRlRfRE9XTikK
KwkgIHsKKwkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UHJlc3NlZDsKKwkJbV9idXR0b24gPSBM
ZWZ0QnV0dG9uOworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTEVGVF9VUCkKKwkgIHsK
KwkJbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFzZWQ7CisJCW1fYnV0dG9uID0gTGVmdEJ1
dHRvbjsgCisJICB9CisJZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9SSUdIVF9ET1dOKQorCSAgewor
CQltX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRQcmVzc2VkOworCQltX2J1dHRvbiA9IFJpZ2h0QnV0
dG9uOworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfUklHSFRfVVApCisJICB7CisJCW1f
ZXZlbnRUeXBlID0gTW91c2VFdmVudFJlbGVhc2VkOworCQltX2J1dHRvbiA9IFJpZ2h0QnV0dG9u
OworCSAgfQorCWVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTUlERExFX0RPV04pCisJICB7CisJCW1f
ZXZlbnRUeXBlID0gTW91c2VFdmVudFByZXNzZWQ7CisJCW1fYnV0dG9uID0gTWlkZGxlQnV0dG9u
OworCSAgfQorICAgIGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTUlERExFX1VQKQorCSAgeworCQlt
X2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKKwkJbV9idXR0b24gPSBNaWRkbGVCdXR0
b247CisJICB9CisJZWxzZSBpZiAoKHR5cGUgPT0gd3hFVlRfTEVGVF9EQ0xJQ0spIHx8ICh0eXBl
ID09IHd4RVZUX01JRERMRV9EQ0xJQ0spCisJCXx8ICh0eXBlID09IHd4RVZUX1JJR0hUX0RDTElD
SykpCisJICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKKwkKKwkKKwlpZiAobV9l
dmVudFR5cGUgPT0gTW91c2VFdmVudE1vdmVkKQorCQltX2NsaWNrQ291bnQgPSAwOworCSAgZWxz
ZQorCQltX2NsaWNrQ291bnQgPSBldmVudC5CdXR0b25EQ2xpY2soKSA/IDIgOiAxOwogCi0gICAg
ZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9NT1RJT04pCi0gICAgICAgIG1fZXZlbnRUeXBlID0gTW91
c2VFdmVudE1vdmVkOwotCi0gICAgaWYgKGV2ZW50LkxlZnRJc0Rvd24oKSkKLSAgICAgICAgbV9i
dXR0b24gPSBMZWZ0QnV0dG9uOwotICAgIGVsc2UgaWYgKGV2ZW50LlJpZ2h0SXNEb3duKCkpCi0g
ICAgICAgIG1fYnV0dG9uID0gUmlnaHRCdXR0b247Ci0gICAgZWxzZSBpZiAoZXZlbnQuTWlkZGxl
SXNEb3duKCkpCi0gICAgICAgIG1fYnV0dG9uID0gTWlkZGxlQnV0dG9uOworCW1fdGltZXN0YW1w
ID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKIH0KLQogfQo=
</data>
<flag name="review"
          id="8995"
          type_id="1"
          status="-"
          setter="avasilev"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20685</attachid>
            <date>2008-04-18 23:47:06 -0700</date>
            <delta_ts>2008-04-20 09:36:00 -0700</delta_ts>
            <desc>Comment #8 reformatted as patch</desc>
            <filename>mouse-handling.patch</filename>
            <type>text/plain</type>
            <size>2996</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL3d4L01vdXNlRXZlbnRXeC5jcHAJKHJldmlzaW9uIDMyMjU4KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bU1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAKICNpbmNsdWRlIDx3eC9k
ZWZzLmg+CiAjaW5jbHVkZSA8d3gvZXZlbnQuaD4KQEAgLTM0LDMxICszNSw2MCBAQAogUGxhdGZv
cm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3Qgd3hNb3VzZUV2ZW50JiBldmVu
dCwgY29uc3Qgd3hQb2ludCYgZ2xvYmFsUG9pbnQpCiAgICAgOiBtX3Bvc2l0aW9uKGV2ZW50Lkdl
dFBvc2l0aW9uKCkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvaW50KQotICAgICwg
bV9jbGlja0NvdW50KGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDEpCiAgICAgLCBtX3NoaWZ0
S2V5KGV2ZW50LlNoaWZ0RG93bigpKQogICAgICwgbV9jdHJsS2V5KGV2ZW50LkNtZERvd24oKSkK
ICAgICAsIG1fYWx0S2V5KGV2ZW50LkFsdERvd24oKSkKICAgICAsIG1fbWV0YUtleShldmVudC5N
ZXRhRG93bigpKSAvLyBGSVhNRTogV2UnbGwgaGF2ZSB0byB0ZXN0IG90aGVyIGJyb3dzZXJzCiB7
Ci0gICAgd3hFdmVudFR5cGUgdHlwZSA9IGV2ZW50LkdldEV2ZW50VHlwZSgpOwotICAgIG1fZXZl
bnRUeXBlID0gTW91c2VFdmVudE1vdmVkOwotICAgIAotICAgIGlmICh0eXBlID09IHd4RVZUX0xF
RlRfRE9XTiB8fCB0eXBlID09IHd4RVZUX01JRERMRV9ET1dOIHx8IHR5cGUgPT0gd3hFVlRfUklH
SFRfRE9XTikKKyAgICAgd3hFdmVudFR5cGUgdHlwZSA9IGV2ZW50LkdldEV2ZW50VHlwZSgpOwor
ICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKKyAgICAgCisgICAgLy8gc3RyYW5n
ZSwgdGhlIGNvbXBpbGVyIGRvZXN3bnQgYWxsb3cgdXMgdG8gdXNlIGEgc3dpdGNoIGhlcmUsICB3
aXRoIHd4RVZUX3h4eAorICAgIC8vIGNhc2VzLCBldmVuIHRob3VnaCB0aGV5IGFyZSBvZiB0aGUg
ZW51bSB0eXBlIG9mIHRoZSAndHlwZScgdmFyaWFibGUKKyAgICAvLyBzbyB3ZSB1c2UgaWYtcyBp
bnN0ZWFkCisgICAgaWYgKHR5cGUgPT0gd3hFVlRfTEVGVF9ET1dOKSB7CiAgICAgICAgIG1fZXZl
bnRUeXBlID0gTW91c2VFdmVudFByZXNzZWQ7Ci0gICAgCi0gICAgZWxzZSBpZiAodHlwZSA9PSB3
eEVWVF9MRUZUX1VQIHx8IHR5cGUgPT0gd3hFVlRfTUlERExFX1VQIHx8IHR5cGUgPT0gd3hFVlRf
UklHSFRfVVAgfHwgCi0gICAgICAgICAgICAgICAgdHlwZSA9PSB3eEVWVF9MRUZUX0RDTElDSyB8
fCB0eXBlID09IHd4RVZUX01JRERMRV9EQ0xJQ0sgfHwgdHlwZSA9PSB3eEVWVF9SSUdIVF9EQ0xJ
Q0spCisgICAgICAgIG1fYnV0dG9uID0gTGVmdEJ1dHRvbjsKKyAgICAgICAgCisgICAgfSBlbHNl
IGlmICh0eXBlID09IHd4RVZUX0xFRlRfVVApIHsKICAgICAgICAgbV9ldmVudFR5cGUgPSBNb3Vz
ZUV2ZW50UmVsZWFzZWQ7Ci0KLSAgICBlbHNlIGlmICh0eXBlID09IHd4RVZUX01PVElPTikKLSAg
ICAgICAgbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50TW92ZWQ7Ci0KLSAgICBpZiAoZXZlbnQuTGVm
dElzRG93bigpKQogICAgICAgICBtX2J1dHRvbiA9IExlZnRCdXR0b247Ci0gICAgZWxzZSBpZiAo
ZXZlbnQuUmlnaHRJc0Rvd24oKSkKKyAgICAgICAgCisgICAgfSBlbHNlIGlmICh0eXBlID09IHd4
RVZUX1JJR0hUX0RPV04pIHsKKyAgICAgICAgbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UHJlc3Nl
ZDsKICAgICAgICAgbV9idXR0b24gPSBSaWdodEJ1dHRvbjsKLSAgICBlbHNlIGlmIChldmVudC5N
aWRkbGVJc0Rvd24oKSkKKyAgICAgICAgCisgICAgfSBlbHNlIGlmICh0eXBlID09IHd4RVZUX1JJ
R0hUX1VQKSB7CisgICAgICAgIG1fZXZlbnRUeXBlID0gTW91c2VFdmVudFJlbGVhc2VkOworICAg
ICAgICBtX2J1dHRvbiA9IFJpZ2h0QnV0dG9uOworICAgICAgICAKKyAgICB9IGVsc2UgaWYgKHR5
cGUgPT0gd3hFVlRfTUlERExFX0RPV04pIHsKKyAgICAgICAgbV9ldmVudFR5cGUgPSBNb3VzZUV2
ZW50UHJlc3NlZDsKICAgICAgICAgbV9idXR0b24gPSBNaWRkbGVCdXR0b247CisgICAgICAgIAor
ICAgIH0gZWxzZSBpZiAodHlwZSA9PSB3eEVWVF9NSURETEVfVVApIHsKKyAgICAgICAgbV9ldmVu
dFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFzZWQ7CisgICAgICAgIG1fYnV0dG9uID0gTWlkZGxlQnV0
dG9uOworICAgICAgICAKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTEVGVF9EQ0xJQ0sp
IHsKKyAgICAgICAgbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVsZWFzZWQ7CisgICAgICAgIG1f
YnV0dG9uID0gTGVmdEJ1dHRvbjsKKyAgICAgICAgCisgICAgfSBlbHNlIGlmICh0eXBlID09IHd4
RVZUX01JRERMRV9EQ0xJQ0spIHsKKyAgICAgICAgbV9ldmVudFR5cGUgPSBNb3VzZUV2ZW50UmVs
ZWFzZWQ7CisgICAgICAgIG1fYnV0dG9uID0gTWlkZGxlQnV0dG9uOworICAgICAgICAKKyAgICB9
IGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfUklHSFRfRENMSUNLKSB7CisgICAgICAgIG1fZXZlbnRU
eXBlID0gTW91c2VFdmVudFJlbGVhc2VkOworICAgICAgICBtX2J1dHRvbiA9IFJpZ2h0QnV0dG9u
OworICAgIH0KKyAgICAKKyAgICBpZiAobV9ldmVudFR5cGUgPT0gTW91c2VFdmVudE1vdmVkKQor
ICAgICAgICBtX2NsaWNrQ291bnQgPSAwOworICAgIGVsc2UKKyAgICAgICAgbV9jbGlja0NvdW50
ID0gZXZlbnQuQnV0dG9uRENsaWNrKCkgPyAyIDogMTsKKworICAgICAgIG1fdGltZXN0YW1wID0g
V2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKIH0KIAogfQo=
</data>
<flag name="review"
          id="9031"
          type_id="1"
          status="+"
          setter="kevino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20700</attachid>
            <date>2008-04-20 09:36:00 -0700</date>
            <delta_ts>2008-05-01 00:03:51 -0700</delta_ts>
            <desc>Fix that uses event.Button() to set the button.</desc>
            <filename>mouse-handling2.patch</filename>
            <type>text/plain</type>
            <size>1859</size>
            <attacher name="Kevin Ollivier">kevino</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzMjI4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMDgtMDQtMjAgIEtldmluIE9sbGl2aWVyICA8a2V2aW5vQHRoZW9s
bGl2aWVycy5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTWFrZSBzdXJlIHdlIHByb3Blcmx5IHNldCB0aGUgYnV0dG9uIGZvciBhbGwgbW91c2Ug
ZXZlbnRzLAorICAgICAgICBub3QganVzdCBtb3VzZSBkb3duLCBzZXQgdGhlIGNsaWNrIGNvdW50
IHRvIDAKKyAgICAgICAgZm9yIG5vbi1jbGljayBldmVudHMsIGFuZCBmaW5hbGx5IHNldCB0aGUg
dGltZXN0YW1wLiAKKworICAgICAgICAqIHBsYXRmb3JtL3d4L01vdXNlRXZlbnRXeC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudCk6
CisKIDIwMDgtMDQtMjAgIFNpbW9uIEhhdXNtYW5uICA8aGF1c21hbm5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbHAgVG9rZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4
L01vdXNlRXZlbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9Nb3Vz
ZUV2ZW50V3guY3BwCShyZXZpc2lvbiAzMjI2OSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91
c2VFdmVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogUGxhdGZvcm1N
b3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQoY29uc3Qgd3hNb3VzZUV2ZW50JiBldmVudCwg
Y29uc3Qgd3hQb2ludCYgZ2xvYmFsUG9pbnQpCiAgICAgOiBtX3Bvc2l0aW9uKGV2ZW50LkdldFBv
c2l0aW9uKCkpCiAgICAgLCBtX2dsb2JhbFBvc2l0aW9uKGdsb2JhbFBvaW50KQotICAgICwgbV9j
bGlja0NvdW50KGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDEpCiAgICAgLCBtX3NoaWZ0S2V5
KGV2ZW50LlNoaWZ0RG93bigpKQogICAgICwgbV9jdHJsS2V5KGV2ZW50LkNtZERvd24oKSkKICAg
ICAsIG1fYWx0S2V5KGV2ZW50LkFsdERvd24oKSkKQEAgLTUzLDEyICs1MiwxOSBAQAogICAgIGVs
c2UgaWYgKHR5cGUgPT0gd3hFVlRfTU9USU9OKQogICAgICAgICBtX2V2ZW50VHlwZSA9IE1vdXNl
RXZlbnRNb3ZlZDsKIAotICAgIGlmIChldmVudC5MZWZ0SXNEb3duKCkpCisgICAgaWYgKGV2ZW50
LkJ1dHRvbigpID09IHd4TU9VU0VfQlROX0xFRlQpCiAgICAgICAgIG1fYnV0dG9uID0gTGVmdEJ1
dHRvbjsKLSAgICBlbHNlIGlmIChldmVudC5SaWdodElzRG93bigpKQorICAgIGVsc2UgaWYgKGV2
ZW50LkJ1dHRvbigpID09IHd4TU9VU0VfQlROX1JJR0hUKQogICAgICAgICBtX2J1dHRvbiA9IFJp
Z2h0QnV0dG9uOwotICAgIGVsc2UgaWYgKGV2ZW50Lk1pZGRsZUlzRG93bigpKQorICAgIGVsc2Ug
aWYgKGV2ZW50LkJ1dHRvbigpID09IHd4TU9VU0VfQlROX01JRERMRSkKICAgICAgICAgbV9idXR0
b24gPSBNaWRkbGVCdXR0b247CisKKyAgICBpZiAobV9ldmVudFR5cGUgPT0gTW91c2VFdmVudE1v
dmVkKQorICAgICAgICBtX2NsaWNrQ291bnQgPSAwOworICAgIGVsc2UKKyAgICAgICAgbV9jbGlj
a0NvdW50ID0gZXZlbnQuQnV0dG9uRENsaWNrKCkgPyAyIDogMTsKKworICAgIG1fdGltZXN0YW1w
ID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKIH0KIAogfQo=
</data>
<flag name="review"
          id="9041"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22136</attachid>
            <date>2008-07-07 10:48:41 -0700</date>
            <delta_ts>2008-07-08 15:22:41 -0700</delta_ts>
            <desc>Patch to use wxMouseEvent::LeftIsDown and related functions</desc>
            <filename>MouseEventWx.cpp.diff</filename>
            <type>text/plain</type>
            <size>2045</size>
            <attacher name="Kevin Watters">kevinwatters</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAppbmRleCBjMzAxYzM4Li40ZTE0ZjU1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L01vdXNlRXZlbnRXeC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCkBAIC0yMCw3ICsyMCw3IEBACiAgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKQEAgLTQzLDI3ICs0MywyNSBA
QCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VFdmVudChjb25zdCB3eE1vdXNlRXZl
bnQmIGV2ZW50LCBjb25zdCB3eFBvaW50JgogewogICAgIHd4RXZlbnRUeXBlIHR5cGUgPSBldmVu
dC5HZXRFdmVudFR5cGUoKTsKICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRNb3ZlZDsKLSAg
ICAKKwogICAgIGlmICh0eXBlID09IHd4RVZUX0xFRlRfRE9XTiB8fCB0eXBlID09IHd4RVZUX01J
RERMRV9ET1dOIHx8IHR5cGUgPT0gd3hFVlRfUklHSFRfRE9XTikKICAgICAgICAgbV9ldmVudFR5
cGUgPSBNb3VzZUV2ZW50UHJlc3NlZDsKLSAgICAKLSAgICBlbHNlIGlmICh0eXBlID09IHd4RVZU
X0xFRlRfVVAgfHwgdHlwZSA9PSB3eEVWVF9NSURETEVfVVAgfHwgdHlwZSA9PSB3eEVWVF9SSUdI
VF9VUCB8fCAKLSAgICAgICAgICAgICAgICB0eXBlID09IHd4RVZUX0xFRlRfRENMSUNLIHx8IHR5
cGUgPT0gd3hFVlRfTUlERExFX0RDTElDSyB8fCB0eXBlID09IHd4RVZUX1JJR0hUX0RDTElDSykK
KworICAgIGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTEVGVF9VUCB8fCB0eXBlID09IHd4RVZUX01J
RERMRV9VUCB8fCB0eXBlID09IHd4RVZUX1JJR0hUX1VQIHx8IHR5cGUgPT0gd3hFVlRfTEVGVF9E
Q0xJQ0sgfHwgdHlwZSA9PSB3eEVWVF9NSURETEVfRENMSUNLIHx8IHR5cGUgPT0gd3hFVlRfUklH
SFRfRENMSUNLKQogICAgICAgICBtX2V2ZW50VHlwZSA9IE1vdXNlRXZlbnRSZWxlYXNlZDsKIAog
ICAgIGVsc2UgaWYgKHR5cGUgPT0gd3hFVlRfTU9USU9OKQogICAgICAgICBtX2V2ZW50VHlwZSA9
IE1vdXNlRXZlbnRNb3ZlZDsKIAotICAgIGlmIChldmVudC5CdXR0b24od3hNT1VTRV9CVE5fTEVG
VCkpCisgICAgaWYgKGV2ZW50LkxlZnRJc0Rvd24oKSB8fCBldmVudC5CdXR0b24od3hNT1VTRV9C
VE5fTEVGVCkpCiAgICAgICAgIG1fYnV0dG9uID0gTGVmdEJ1dHRvbjsKLSAgICBlbHNlIGlmIChl
dmVudC5CdXR0b24od3hNT1VTRV9CVE5fUklHSFQpKQorICAgIGVsc2UgaWYgKGV2ZW50LlJpZ2h0
SXNEb3duKCkgfHwgZXZlbnQuQnV0dG9uKHd4TU9VU0VfQlROX1JJR0hUKSkKICAgICAgICAgbV9i
dXR0b24gPSBSaWdodEJ1dHRvbjsKLSAgICBlbHNlIGlmIChldmVudC5CdXR0b24od3hNT1VTRV9C
VE5fTUlERExFKSkKKyAgICBlbHNlIGlmIChldmVudC5NaWRkbGVJc0Rvd24oKSB8fCBldmVudC5C
dXR0b24od3hNT1VTRV9CVE5fTUlERExFKSkKICAgICAgICAgbV9idXR0b24gPSBNaWRkbGVCdXR0
b247CiAgICAgZWxzZSBpZiAoIW1fZXZlbnRUeXBlID09IE1vdXNlRXZlbnRNb3ZlZCkKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKLQogICAgIGlmIChtX2V2ZW50VHlwZSA9PSBNb3Vz
ZUV2ZW50TW92ZWQpCiAgICAgICAgIG1fY2xpY2tDb3VudCA9IDA7CiAgICAgZWxzZQo=
</data>
<flag name="review"
          id="9746"
          type_id="1"
          status="+"
          setter="kevino"
    />
          </attachment>
      

    </bug>

</bugzilla>