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; |
}]; |
} |