diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-22 01:29:05 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-22 01:29:05 +0000 |
commit | 41fbf097c8e01c4971de118eb8fb791b9abaa6eb (patch) | |
tree | 8216ee10224ebb84ace23ef8d227e8ec07666bac /third_party/npapi | |
parent | d77232f96be7900e1e7230d145c06bb9e5ed7e44 (diff) | |
download | chromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.zip chromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.tar.gz chromium_src-41fbf097c8e01c4971de118eb8fb791b9abaa6eb.tar.bz2 |
Add events to windowless plugins on linux. This CL also refactors the event
communication between WebPlugin and WebPluginDelegate, to use a cross-platform
message based on WebInputEvent.
BUG=8202
TEST=A lot of manual testing on Linux and Windows, with Flash plugins and a
custom plugin that dumps events on Linux.
Review URL: http://codereview.chromium.org/115330
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16692 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/npapi')
-rw-r--r-- | third_party/npapi/bindings/npapi.h | 26 | ||||
-rw-r--r-- | third_party/npapi/bindings/npapi_x11.h | 62 |
2 files changed, 78 insertions, 10 deletions
diff --git a/third_party/npapi/bindings/npapi.h b/third_party/npapi/bindings/npapi.h index 1035aa3..e60ef7a 100644 --- a/third_party/npapi/bindings/npapi.h +++ b/third_party/npapi/bindings/npapi.h @@ -107,6 +107,7 @@ // On Linux and Mac, be sure to set Mozilla-specific macros. #if defined(OS_LINUX) #define XP_UNIX 1 +#define MOZ_X11 1 #elif defined(OS_MACOSX) #ifndef XP_MACOSX #define XP_MACOSX 1 @@ -133,10 +134,16 @@ #if defined(XP_UNIX) # include <stdio.h> +// BEGIN GOOGLE MODIFICATIONS +#if 0 +// END GOOGLE MODIFICATIONS # if defined(MOZ_X11) # include <X11/Xlib.h> # include <X11/Xutil.h> # endif +// BEGIN GOOGLE MODIFICATIONS +#endif +// END GOOGLE MODIFICATIONS #endif /*----------------------------------------------------------------------*/ @@ -341,16 +348,9 @@ typedef struct int32 type; } NPAnyCallbackStruct; -typedef struct -{ - int32 type; -#ifdef MOZ_X11 - Display* display; - Visual* visual; - Colormap colormap; - unsigned int depth; -#endif -} NPSetWindowCallbackStruct; +// BEGIN GOOGLE MODIFICATIONS +typedef struct _NPSetWindowCallbackStruct NPSetWindowCallbackStruct; +// END GOOGLE MODIFICATIONS typedef struct { @@ -564,6 +564,9 @@ typedef struct _NPEvent uint32 lParam; } NPEvent; #elif defined (XP_UNIX) && defined(MOZ_X11) +// BEGIN GOOGLE MODIFICATIONS +typedef union _XEvent XEvent; +// END GOOGLE MODIFICATIONS typedef XEvent NPEvent; #else typedef void* NPEvent; @@ -578,6 +581,9 @@ typedef CGPathRef NPCGRegion; #elif defined(XP_WIN) typedef HRGN NPRegion; #elif defined(XP_UNIX) && defined(MOZ_X11) +// BEGIN GOOGLE MODIFICATIONS +typedef struct _XRegion *Region; +// END GOOGLE MODIFICATIONS typedef Region NPRegion; #else typedef void *NPRegion; diff --git a/third_party/npapi/bindings/npapi_x11.h b/third_party/npapi/bindings/npapi_x11.h new file mode 100644 index 0000000..c586419 --- /dev/null +++ b/third_party/npapi/bindings/npapi_x11.h @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1/GPL 2.0/LGPL 2.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is mozilla.org code. + * + * The Initial Developer of the Original Code is + * Netscape Communications Corporation. + * Portions created by the Initial Developer are Copyright (C) 1998 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 2 or later (the "GPL"), or + * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), + * in which case the provisions of the GPL or the LGPL are applicable instead + * of those above. If you wish to allow use of your version of this file only + * under the terms of either the GPL or the LGPL, and not to allow others to + * use your version of this file under the terms of the MPL, indicate your + * decision by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL or the LGPL. If you do not delete + * the provisions above, a recipient may use your version of this file under + * the terms of any one of the MPL, the GPL or the LGPL. + * + * ***** END LICENSE BLOCK ***** */ + +#ifndef THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_ +#define THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_ + +// This file was split off the original npapi.h, to avoid including intrusive X +// headers unless necessary. + +#include "third_party/npapi/bindings/npapi.h" + +#ifdef XP_UNIX +#include <X11/Xlib.h> +#include <X11/Xutil.h> + +typedef struct _NPSetWindowCallbackStruct +{ + int32 type; +#ifdef MOZ_X11 + Display* display; + Visual* visual; + Colormap colormap; + unsigned int depth; +#endif +} NPSetWindowCallbackStruct; +#endif + +#endif // THIRD_PARTY_NPAPI_BINDINGS_NPAPI_X11_H_ |