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..d50c102eb41f2726c2f3a38d51ec5a04596539d7 100644 |
| --- a/ui/views/event_monitor_mac.mm |
| +++ b/ui/views/event_monitor_mac.mm |
| @@ -12,8 +12,17 @@ |
| namespace views { |
| // static |
| -EventMonitor* EventMonitor::Create(ui::EventHandler* event_handler) { |
| - return new EventMonitorMac(event_handler); |
| +scoped_ptr<EventMonitor> EventMonitor::CreateApplicationMonitor( |
| + ui::EventHandler* event_handler) { |
| + return scoped_ptr<EventMonitor>(new EventMonitorMac(event_handler, nullptr)); |
| +} |
| + |
| +// static |
| +scoped_ptr<EventMonitor> EventMonitor::CreateWindowMonitor( |
| + ui::EventHandler* event_handler, |
| + gfx::NativeWindow target_window) { |
| + return scoped_ptr<EventMonitor>( |
| + new EventMonitorMac(event_handler, target_window)); |
| } |
| // static |
| @@ -25,12 +34,15 @@ gfx::Point EventMonitor::GetLastMouseLocation() { |
| return gfx::Point(mouseLocation.x, mouseLocation.y); |
| } |
| -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/12/10 02:58:27
So block formatting was taken out of the official
Andre
2014/12/10 22:58:05
Done.
|
| + scoped_ptr<ui::Event> ui_event = ui::EventFromNative(event); |
| + event_handler->OnEvent(ui_event.get()); |
| + } |
| return event; |
| }]; |
| } |