Chromium Code Reviews| 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; |
| }]; |
| } |