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

Unified Diff: ui/views/event_monitor_mac.mm

Issue 730833006: MacViews: Implement event monitoring for a specific window (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« ui/views/event_monitor_aura.cc ('K') | « ui/views/event_monitor_mac.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}];
}
« ui/views/event_monitor_aura.cc ('K') | « ui/views/event_monitor_mac.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698