| Index: chrome/common/native_web_keyboard_event_linux.cc
|
| diff --git a/chrome/common/native_web_keyboard_event_linux.cc b/chrome/common/native_web_keyboard_event_linux.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..190bf7c5ae7849f285fc64845a525347cc162e6c
|
| --- /dev/null
|
| +++ b/chrome/common/native_web_keyboard_event_linux.cc
|
| @@ -0,0 +1,53 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/common/native_web_keyboard_event.h"
|
| +
|
| +namespace {
|
| +
|
| +void CopyEventTo(const GdkEventKey* in, GdkEventKey** out) {
|
| + if (in) {
|
| + *out = reinterpret_cast<GdkEventKey*>(
|
| + gdk_event_copy(
|
| + reinterpret_cast<GdkEvent*>(const_cast<GdkEventKey*>(in))));
|
| + } else {
|
| + *out = NULL;
|
| + }
|
| +}
|
| +
|
| +void FreeEvent(GdkEventKey* event) {
|
| + if (event) {
|
| + gdk_event_free(reinterpret_cast<GdkEvent*>(event));
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +
|
| +NativeWebKeyboardEvent::NativeWebKeyboardEvent()
|
| + : event(NULL) {
|
| +}
|
| +
|
| +NativeWebKeyboardEvent::NativeWebKeyboardEvent(const GdkEventKey* native_event)
|
| + : WebKeyboardEvent(native_event) {
|
| + CopyEventTo(native_event, &event);
|
| +}
|
| +
|
| +NativeWebKeyboardEvent::NativeWebKeyboardEvent(
|
| + const NativeWebKeyboardEvent& other) : WebKeyboardEvent(other) {
|
| + CopyEventTo(other.event, &event);
|
| +}
|
| +
|
| +NativeWebKeyboardEvent& NativeWebKeyboardEvent::operator=(
|
| + const NativeWebKeyboardEvent& other) {
|
| + WebKeyboardEvent::operator=(other);
|
| +
|
| + FreeEvent(event);
|
| + CopyEventTo(other.event, &event);
|
| + return *this;
|
| +}
|
| +
|
| +NativeWebKeyboardEvent::~NativeWebKeyboardEvent() {
|
| + FreeEvent(event);
|
| +}
|
|
|