summaryrefslogtreecommitdiffstats
path: root/Source/WebKit2/Shared/mac/WebEventFactory.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/Shared/mac/WebEventFactory.mm')
-rw-r--r--Source/WebKit2/Shared/mac/WebEventFactory.mm15
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;
}