Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1747)

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 2739773004: Make stylus's eraser button work on Mac (Closed)
Patch Set: refactor tests Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 4bbf13f0be7f533b4700161c86e22e63c83846a8..d66e4c4303d801a9000ba8ad7b97540bbdd866d5 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -1910,11 +1910,21 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged(
// Set the pointer type when we are receiving a NSMouseEntered event and the
// following NSMouseExited event should have the same pointer type.
+ // For NSMouseExited and NSMouseEntered events, they do not have a subtype.
+ // We decide their pointer types by checking if we recevied a
+ // NSTabletProximity event.
NSEventType type = [theEvent type];
- if (type == NSMouseEntered) {
+ if (type == NSMouseEntered || type == NSMouseExited) {
pointerType_ = isStylusEnteringProximity_
- ? blink::WebPointerProperties::PointerType::Pen
+ ? pointerType_
: blink::WebPointerProperties::PointerType::Mouse;
+ } else {
+ NSEventSubtype subtype = [theEvent subtype];
+ // For other mouse events and touchpad events, the pointer type is mouse.
+ if (subtype != NSTabletPointEventSubtype &&
+ subtype != NSTabletProximityEventSubtype) {
+ pointerType_ = blink::WebPointerProperties::PointerType::Mouse;
+ }
}
if ([self shouldIgnoreMouseEvent:theEvent]) {
@@ -1987,8 +1997,14 @@ void RenderWidgetHostViewMac::OnDisplayMetricsChanged(
}
- (void)tabletEvent:(NSEvent*)theEvent {
- if ([theEvent type] == NSTabletProximity)
+ if ([theEvent type] == NSTabletProximity) {
isStylusEnteringProximity_ = [theEvent isEnteringProximity];
+ NSPointingDeviceType deviceType = [theEvent pointingDeviceType];
+ // For all tablet events, the pointer type will be pen or eraser.
+ pointerType_ = deviceType == NSEraserPointingDevice
+ ? blink::WebPointerProperties::PointerType::Eraser
+ : blink::WebPointerProperties::PointerType::Pen;
+ }
}
- (BOOL)performKeyEquivalent:(NSEvent*)theEvent {

Powered by Google App Engine
This is Rietveld 408576698