Index: ui/views/event_monitor_mac.mm |
diff --git a/ui/views/event_monitor_mac.mm b/ui/views/event_monitor_mac.mm |
index a04f292550447e5d92b6a88c3205afb1f78d11ef..a5818e87de4d9b15c7c2c1e5d56de14072a969cf 100644 |
--- a/ui/views/event_monitor_mac.mm |
+++ b/ui/views/event_monitor_mac.mm |
@@ -13,7 +13,13 @@ namespace views { |
// static |
EventMonitor* EventMonitor::Create(ui::EventHandler* event_handler) { |
- return new EventMonitorMac(event_handler); |
+ return new EventMonitorMac(event_handler, nullptr); |
+} |
+ |
+// static |
+EventMonitor* EventMonitor::Create(ui::EventHandler* event_handler, |
+ gfx::NativeWindow target_window) { |
+ return new EventMonitorMac(event_handler, target_window); |
} |
// static |
@@ -25,12 +31,15 @@ gfx::Point EventMonitor::GetLastMouseLocation() { |
return gfx::Point(mouseLocation.x, mouseLocation.y); |
tapted
2014/11/20 22:39:02
also orthogonal, but we probably should move this
Andre
2014/11/21 00:28:28
Yeah, we should add ScreenPointFromNSPoint there.
|
} |
-EventMonitorMac::EventMonitorMac(ui::EventHandler* event_handler) { |
+EventMonitorMac::EventMonitorMac(ui::EventHandler* event_handler, |
+ gfx::NativeWindow target_window) { |
DCHECK(event_handler); |
monitor_ = [NSEvent addLocalMonitorForEventsMatchingMask:NSAnyEventMask |
handler:^NSEvent*(NSEvent* event){ |
- scoped_ptr<ui::Event> ui_event = ui::EventFromNative(event); |
- event_handler->OnEvent(ui_event.get()); |
+ if (!target_window || [event window] == target_window) { |
tapted
2014/11/20 22:39:02
Can the EventMonitorMac outlive this NSWindow?
(M
Andre
2014/11/21 00:28:28
There is that risk, same with EventMonitorAura as
tapted
2014/11/21 00:57:34
WidgetObserver might be nicer, in which case these
Andre
2014/12/10 00:18:13
Done.
Added the comment.
|
+ scoped_ptr<ui::Event> ui_event = ui::EventFromNative(event); |
+ event_handler->OnEvent(ui_event.get()); |
+ } |
return event; |
}]; |
} |