diff options
Diffstat (limited to 'Source/WebKit2/Shared/mac/WebEventFactory.mm')
-rw-r--r-- | Source/WebKit2/Shared/mac/WebEventFactory.mm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Source/WebKit2/Shared/mac/WebEventFactory.mm b/Source/WebKit2/Shared/mac/WebEventFactory.mm index 8f02f6b..67ab1ba 100644 --- a/Source/WebKit2/Shared/mac/WebEventFactory.mm +++ b/Source/WebKit2/Shared/mac/WebEventFactory.mm @@ -34,6 +34,18 @@ using namespace WebCore; namespace WebKit { +static WebMouseEvent::Button currentMouseButton() +{ + NSUInteger pressedMouseButtons = [NSEvent pressedMouseButtons]; + if (!pressedMouseButtons) + return WebMouseEvent::NoButton; + if (pressedMouseButtons == 1 << 0) + return WebMouseEvent::LeftButton; + if (pressedMouseButtons == 1 << 1) + return WebMouseEvent::RightButton; + return WebMouseEvent::MiddleButton; +} + static WebMouseEvent::Button mouseButtonForEvent(NSEvent *event) { switch ([event type]) { @@ -49,6 +61,9 @@ static WebMouseEvent::Button mouseButtonForEvent(NSEvent *event) case NSOtherMouseUp: case NSOtherMouseDragged: return WebMouseEvent::MiddleButton; + case NSMouseEntered: + case NSMouseExited: + return currentMouseButton(); default: return WebMouseEvent::NoButton; } |