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

Unified Diff: ui/events/event_utils.cc

Issue 284903002: Only dispatch menu events if they have a valid target. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 7 months 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
« no previous file with comments | « ui/events/event_utils.h ('k') | ui/views/controls/menu/menu_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/event_utils.cc
diff --git a/ui/events/event_utils.cc b/ui/events/event_utils.cc
index e5a319e10f15bf0daab6633f98588eb86fd0b272..e4b384a47442200a13e29deb7aefadd74ba297a4 100644
--- a/ui/events/event_utils.cc
+++ b/ui/events/event_utils.cc
@@ -16,6 +16,53 @@ namespace {
int g_custom_event_types = ET_LAST;
} // namespace
+scoped_ptr<Event> EventFromNative(const base::NativeEvent& native_event) {
+ scoped_ptr<Event> event;
+ EventType type = EventTypeFromNative(native_event);
+ switch(type) {
+ case ET_KEY_PRESSED:
+ case ET_KEY_RELEASED:
+ event.reset(new KeyEvent(native_event, false));
+ break;
+
+ case ET_TRANSLATED_KEY_PRESS:
+ case ET_TRANSLATED_KEY_RELEASE:
+ // These should not be generated by native events.
+ NOTREACHED();
+ break;
+
+ case ET_MOUSE_PRESSED:
+ case ET_MOUSE_DRAGGED:
+ case ET_MOUSE_RELEASED:
+ case ET_MOUSE_MOVED:
+ case ET_MOUSE_ENTERED:
+ case ET_MOUSE_EXITED:
+ event.reset(new MouseEvent(native_event));
+ break;
+
+ case ET_MOUSEWHEEL:
+ event.reset(new MouseWheelEvent(native_event));
+ break;
+
+ case ET_SCROLL_FLING_START:
+ case ET_SCROLL_FLING_CANCEL:
+ case ET_SCROLL:
+ event.reset(new ScrollEvent(native_event));
+ break;
+
+ case ET_TOUCH_RELEASED:
+ case ET_TOUCH_PRESSED:
+ case ET_TOUCH_MOVED:
+ case ET_TOUCH_CANCELLED:
+ event.reset(new TouchEvent(native_event));
+ break;
+
+ default:
+ break;
+ }
+ return event.Pass();
+}
+
int RegisterCustomEventType() {
return ++g_custom_event_types;
}
« no previous file with comments | « ui/events/event_utils.h ('k') | ui/views/controls/menu/menu_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698