| Index: ui/events/event.cc
|
| diff --git a/ui/events/event.cc b/ui/events/event.cc
|
| index 27de2a96b6a150891a4632df87890562f06a4eb0..3b3c16145c28fe90c3eb176c63ae2d04edfe3754 100644
|
| --- a/ui/events/event.cc
|
| +++ b/ui/events/event.cc
|
| @@ -111,6 +111,40 @@ namespace ui {
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // Event
|
|
|
| +// static
|
| +scoped_ptr<Event> Event::Clone(const Event& event) {
|
| + if (event.IsKeyEvent()) {
|
| + return scoped_ptr<Event>(new KeyEvent(static_cast<const KeyEvent&>(event)));
|
| + }
|
| +
|
| + if (event.IsMouseEvent()) {
|
| + if (event.IsMouseWheelEvent()) {
|
| + return scoped_ptr<Event>(
|
| + new MouseWheelEvent(static_cast<const MouseWheelEvent&>(event)));
|
| + }
|
| +
|
| + return scoped_ptr<Event>(
|
| + new MouseEvent(static_cast<const MouseEvent&>(event)));
|
| + }
|
| +
|
| + if (event.IsTouchEvent()) {
|
| + return scoped_ptr<Event>(
|
| + new TouchEvent(static_cast<const TouchEvent&>(event)));
|
| + }
|
| +
|
| + if (event.IsGestureEvent()) {
|
| + return scoped_ptr<Event>(
|
| + new GestureEvent(static_cast<const GestureEvent&>(event)));
|
| + }
|
| +
|
| + if (event.IsScrollEvent()) {
|
| + return scoped_ptr<Event>(
|
| + new ScrollEvent(static_cast<const ScrollEvent&>(event)));
|
| + }
|
| +
|
| + return scoped_ptr<Event>(new Event(event));
|
| +}
|
| +
|
| Event::~Event() {
|
| if (delete_native_event_)
|
| ReleaseCopiedNativeEvent(native_event_);
|
|
|