diff --git a/modules/plugin/base/src/Makefile.in b/modules/plugin/base/src/Makefile.in index ee292c2ccdf..787f02f2c53 100644 --- a/modules/plugin/base/src/Makefile.in +++ b/modules/plugin/base/src/Makefile.in @@ -119,6 +119,12 @@ CFLAGS += $(MOZ_GTK_CFLAGS) EXTRA_DSO_LDOPTS += -lgtkxtbin -lgtksuperwin $(XLDFLAGS) -lXt $(MOZ_GTK_LDFLAGS) endif #MOZ_ENABLE_GTK +ifdef MOZ_ENABLE_GTK2 +CXXFLAGS += $(MOZ_GTK2_CFLAGS) +CFLAGS += $(MOZ_GTK2_CFLAGS) +EXTRA_DSO_LDOPTS += -lgtkxtbin $(XLDFLAGS) -lXt $(MOZ_GTK2_LIBS) +endif #MOZ_ENABLE_GTK2 + ifdef MOZ_ENABLE_XLIB EXTRA_DSO_LDOPTS += -lxlibxtbin -lxlibrgb -L/usr/X11R6/lib -lXt ifndef MOZ_MONOLITHIC_TOOLKIT diff --git a/modules/plugin/base/src/ns4xPlugin.cpp b/modules/plugin/base/src/ns4xPlugin.cpp index a649a7f70e8..e0f8fed29b3 100644 --- a/modules/plugin/base/src/ns4xPlugin.cpp +++ b/modules/plugin/base/src/ns4xPlugin.cpp @@ -59,12 +59,19 @@ #endif //needed for nppdf plugin -#if defined(MOZ_WIDGET_GTK) +#ifdef MOZ_WIDGET_GTK #include #include #include "gtkxtbin.h" #endif +#ifdef MOZ_WIDGET_GTK2 +#include +#include +#include "gtk2xtbin.h" +#endif + + // POST/GET stream type enum eNPPStreamTypeInternal { eNPPStreamTypeInternal_Get, @@ -1172,13 +1179,13 @@ _getvalue(NPP npp, NPNVariable variable, void *result) switch(variable) { #ifdef XP_UNIX case NPNVxDisplay : { -#if defined(MOZ_WIDGET_GTK) +#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2) // adobe nppdf calls XtGetApplicationNameAndClass(display, &instance, &class) // we have to init Xt toolkit before get XtDisplay // just call gtk_xtbin_new(w,0) once static GtkWidget *gtkXtBinHolder = 0; if (!gtkXtBinHolder) { - gtkXtBinHolder = gtk_xtbin_new((GdkWindow*)&gdk_root_parent,0); + gtkXtBinHolder = gtk_xtbin_new(GDK_ROOT_PARENT(),0); // it crashes on destroy, let it leak // gtk_widget_destroy(gtkXtBinHolder); } diff --git a/modules/plugin/base/src/ns4xPluginInstance.cpp b/modules/plugin/base/src/ns4xPluginInstance.cpp index 9eaa81b24aa..160c559c861 100644 --- a/modules/plugin/base/src/ns4xPluginInstance.cpp +++ b/modules/plugin/base/src/ns4xPluginInstance.cpp @@ -49,11 +49,19 @@ #include "nsIPref.h" // needed for NS_TRY_SAFE_CALL_* #include "nsPluginLogging.h" -#if defined(MOZ_WIDGET_GTK) +#ifdef MOZ_WIDGET_GTK #include #include #include "gtkxtbin.h" -#elif defined(MOZ_WIDGET_XLIB) +#endif + +#ifdef MOZ_WIDGET_GTK2 +#include +#include +#include "gtk2xtbin.h" +#endif + +#ifdef MOZ_WIDGET_XLIB #include "xlibxtbin.h" #include "xlibrgb.h" #endif @@ -587,7 +595,7 @@ ns4xPluginInstance :: ~ns4xPluginInstance(void) { PLUGIN_LOG(PLUGIN_LOG_BASIC, ("ns4xPluginInstance dtor: this=%p\n",this)); -#if defined(MOZ_WIDGET_GTK) +#if defined(MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) if (mXtBin) gtk_widget_destroy(mXtBin); #elif defined(MOZ_WIDGET_XLIB) @@ -618,7 +626,7 @@ NS_IMETHODIMP ns4xPluginInstance::Initialize(nsIPluginInstancePeer* peer) { PLUGIN_LOG(PLUGIN_LOG_NORMAL, ("ns4xPluginInstance::Initialize this=%p\n",this)); -#ifdef MOZ_WIDGET_GTK +#if defined (MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) mXtBin = nsnull; #elif defined(MOZ_WIDGET_XLIB) mXlibXtBin = nsnull; @@ -669,7 +677,7 @@ NS_IMETHODIMP ns4xPluginInstance::Stop(void) NPError error; -#if defined(MOZ_WIDGET_GTK) +#if defined(MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) if (mXtBin) { gtk_widget_destroy(mXtBin); mXtBin = 0; @@ -837,7 +845,7 @@ NS_IMETHODIMP ns4xPluginInstance::Destroy(void) //////////////////////////////////////////////////////////////////////// NS_IMETHODIMP ns4xPluginInstance::SetWindow(nsPluginWindow* window) { -#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_XLIB) +#if defined(MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) || defined(MOZ_WIDGET_XLIB) NPSetWindowCallbackStruct *ws; #endif @@ -847,7 +855,7 @@ NS_IMETHODIMP ns4xPluginInstance::SetWindow(nsPluginWindow* window) NPError error; -#ifdef MOZ_WIDGET_GTK +#if defined (MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) // bug 108337, flash plugin on linux doesn't like window->width <= 0 if ((PRInt32) window->width <= 0 || (PRInt32) window->height <= 0) return NS_OK; diff --git a/modules/plugin/base/src/ns4xPluginInstance.h b/modules/plugin/base/src/ns4xPluginInstance.h index ab9c0618991..c64703b3934 100644 --- a/modules/plugin/base/src/ns4xPluginInstance.h +++ b/modules/plugin/base/src/ns4xPluginInstance.h @@ -54,9 +54,9 @@ #include "prlink.h" // for PRLibrary #include "nsIScriptablePlugin.h" -#ifdef MOZ_WIDGET_GTK +#if defined (MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) #include -#elif MOZ_WIDGET_XLIB +#elif defined (MOZ_WIDGET_XLIB) #include "xlibxtbin.h" #endif @@ -169,13 +169,13 @@ protected: */ NPPluginFuncs* fCallbacks; -#ifdef MOZ_WIDGET_GTK +#if defined (MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) /** * Special GtkXtBin widget that encapsulates the Xt toolkit * within a Gtk Application */ GtkWidget *mXtBin; -#elif MOZ_WIDGET_XLIB +#elif defined (MOZ_WIDGET_XLIB) xtbin *mXlibXtBin; #endif diff --git a/modules/plugin/base/src/nsPluginHostImpl.cpp b/modules/plugin/base/src/nsPluginHostImpl.cpp index 1a20e35b23b..906498e8870 100644 --- a/modules/plugin/base/src/nsPluginHostImpl.cpp +++ b/modules/plugin/base/src/nsPluginHostImpl.cpp @@ -164,7 +164,7 @@ #include "nsIDocShell.h" #ifdef XP_UNIX -#if defined(MOZ_WIDGET_GTK) +#if defined(MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) #include // for GDK_DISPLAY() #elif defined(MOZ_WIDGET_QT) #include // for qt_xdisplay() @@ -2734,7 +2734,7 @@ NS_IMETHODIMP nsPluginHostImpl::GetValue(nsPluginManagerVariable aVariable, void #if defined(XP_UNIX) && !defined(XP_MACOSX) && !defined(NO_X11) if (nsPluginManagerVariable_XDisplay == aVariable) { Display** value = NS_REINTERPRET_CAST(Display**, aValue); -#if defined(MOZ_WIDGET_GTK) +#if defined(MOZ_WIDGET_GTK) || defined (MOZ_WIDGET_GTK2) *value = GDK_DISPLAY(); #elif defined(MOZ_WIDGET_QT) *value = qt_xdisplay(); diff --git a/modules/plugin/base/src/nsPluginsDirUnix.cpp b/modules/plugin/base/src/nsPluginsDirUnix.cpp index db085a28f81..f9e6de8360c 100644 --- a/modules/plugin/base/src/nsPluginsDirUnix.cpp +++ b/modules/plugin/base/src/nsPluginsDirUnix.cpp @@ -77,7 +77,7 @@ static NS_DEFINE_CID(kPrefServiceCID, NS_PREF_CID); #define DEFAULT_X11_PATH "" #endif -#ifdef MOZ_WIDGET_GTK +#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2) #define PLUGIN_MAX_LEN_OF_TMP_ARR 512 @@ -239,7 +239,7 @@ static void LoadExtraSharedLibs() } } } -#endif //MOZ_WIDGET_GTK +#endif //MOZ_WIDGET_GTK || MOZ_WIDGET_GTK2 @@ -299,7 +299,7 @@ nsresult nsPluginFile::LoadPlugin(PRLibrary* &outLibrary) pLibrary = outLibrary = PR_LoadLibraryWithFlags(libSpec, 0); -#ifdef MOZ_WIDGET_GTK +#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_GTK2) /////////////////////////////////////////////////////////// // Normally, Mozilla isn't linked against libXt and libXext