Events are delivered to the top level Widget, which then does a hit test using RenderLayer. RenderLayer will then hit test the RenderObjects. See RenderLayer::hitTest and RenderObject::hitTest. The actual RenderObject hit testing is implemented by a virtual function on RenderObject called nodeAtPoint. If the RenderObject hit is a RenderWidget, then the event will be passed down to that child widget by the EventHandler class, and the process repeats.

dave

On Sep 21, 2008, at 5:34 AM, Tau After wrote:

Mark,
Thanks a lot. I'm still wondering how the Mouse/Key events are associated with the Render Tree? i.e, how thoses events are routed to every render node? I saw there is a "Widget" class implemented for different platforms, and also RenderWidget. seems there is something (specific to mouse events) happening while building up the render tree?

Thnaks!
-Tau

----- Original Message ----
From: Mark Rowe <[EMAIL PROTECTED]>
To: Tau After <[EMAIL PROTECTED]>
Cc: [email protected]
Sent: Sunday, September 21, 2008 1:16:28 PM
Subject: Re: [webkit-dev] How WebCore receives Mouse events?


On Sep 20, 2008, at 9:18 PM, Tau After wrote:

> Hello,
> Could anybody point me the source code where the WebCore register
> itself with the low layer system to receive the Mouse events? (maybe
> also key events for elements like buttons)

WebCore doesn't register for mouse events, the WebKit layer takes care
of passing mouse events down to WebCore when needed.  For example,
when a button is pressed WebKit on Mac 
(<http://trac.webkit.org/browser/trunk/WebKit/mac/WebView/WebHTMLView.mm?rev=36685#L3132
>) calls into EventHandler::mouseDown 
(<http://trac.webkit.org/browser/trunk/WebCore/page/mac/EventHandlerMac.mm?rev=36685#L474
>), which then calls into the cross-platform
EventHandler::handleMousePressEvent 
(<http://trac.webkit.org/browser/trunk/WebCore/page/EventHandler.cpp?rev=36685#L317
>).  EventHandler then takes care of the necessary text selection,
dispatch of DOM events, etc.

Hope this helps,

- Mark


_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to