rpms/kdebase3/devel kdebase-3.5.8-flash.patch, 1.1, 1.2 kdebase3.spec, 1.8, 1.9

Rex Dieter (rdieter) fedora-extras-commits at redhat.com
Fri Dec 14 17:35:00 UTC 2007


Author: rdieter

Update of /cvs/pkgs/rpms/kdebase3/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv30825

Modified Files:
	kdebase-3.5.8-flash.patch kdebase3.spec 
Log Message:
respin flash patch, *really* including gtk_init this time


kdebase-3.5.8-flash.patch:

Index: kdebase-3.5.8-flash.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase3/devel/kdebase-3.5.8-flash.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- kdebase-3.5.8-flash.patch	14 Dec 2007 17:25:23 -0000	1.1
+++ kdebase-3.5.8-flash.patch	14 Dec 2007 17:34:51 -0000	1.2
@@ -1,119 +1,89 @@
-diff -up kdebase-3.5.8/nsplugins/Makefile.am.new-flash kdebase-3.5.8/nsplugins/Makefile.am
-diff -up kdebase-3.5.8/nsplugins/nspluginloader.h.new-flash kdebase-3.5.8/nsplugins/nspluginloader.h
---- kdebase-3.5.8/nsplugins/nspluginloader.h.new-flash	2006-10-01 12:31:58.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/nspluginloader.h	2007-12-14 10:59:58.000000000 -0600
-@@ -43,13 +43,16 @@ class KProcess;
- class QPushButton;
- class QGridLayout;
+diff -up kdebase-3.5.8/nsplugins/nspluginloader.cpp.flash kdebase-3.5.8/nsplugins/nspluginloader.cpp
+--- kdebase-3.5.8/nsplugins/nspluginloader.cpp.flash	2006-10-01 12:31:58.000000000 -0500
++++ kdebase-3.5.8/nsplugins/nspluginloader.cpp	2007-12-14 11:30:19.000000000 -0600
+@@ -54,11 +54,16 @@ NSPluginLoader *NSPluginLoader::s_instan
+ int NSPluginLoader::s_refCount = 0;
  
--class NSPluginInstance : public EMBEDCLASS, virtual public NSPluginInstanceIface_stub
-+class NSPluginInstance : public EMBEDCLASS
- {
-   Q_OBJECT
  
- public:
--    NSPluginInstance(QWidget *parent, const QCString& app, const QCString& id);
-+    NSPluginInstance(QWidget *parent);
-+    void init( const QCString& app, const QCString& obj );
-     ~NSPluginInstance();
-+public: // wrappers
-+    void javascriptResult( int id, QString result ) { stub->javascriptResult( id, result ); }
- 
- private slots:
-     void doLoadPlugin();
-@@ -62,6 +65,11 @@ protected:
-     bool shown;
-     QPushButton *_button;
-     QGridLayout *_layout;
-+    NSPluginInstanceIface_stub* stub;
-+private: // wrappers
-+    void displayPlugin() { stub->displayPlugin(); }
-+    void resizePlugin( int w, int h ) { stub->resizePlugin( w, h ); }
-+    void shutdown() { if( stub ) stub->shutdown(); }
- };
+-NSPluginInstance::NSPluginInstance(QWidget *parent, const QCString& app, const QCString& id)
+-  : DCOPStub(app, id), NSPluginInstanceIface_stub(app, id), EMBEDCLASS(parent)
++NSPluginInstance::NSPluginInstance(QWidget *parent)
++  : EMBEDCLASS(parent), stub( NULL )
+ {
+     _loader = 0L;
+     shown = false;
++}
++
++void NSPluginInstance::init(const QCString& app, const QCString& obj)
++{
++    stub = new NSPluginInstanceIface_stub( app, obj );
+     QGridLayout *_layout = new QGridLayout(this, 1, 1);
+     KConfig cfg("kcmnspluginrc", false);
+     cfg.setGroup("Misc");
+@@ -80,12 +85,19 @@ void NSPluginInstance::doLoadPlugin() {
+         _button = 0L;
+         _loader = NSPluginLoader::instance();
+         setBackgroundMode(QWidget::NoBackground);
+-        setProtocol(QXEmbed::XPLAIN);
+-        embed( NSPluginInstanceIface_stub::winId() );
++        WId winid = stub->winId();
++        if( winid != 0 ) {
++            setProtocol(QXEmbed::XPLAIN);
++            embed( winid );
++        } else {
++            setProtocol(QXEmbed::XEMBED);
++        }
++        // resize before showing, some plugins are stupid and can't handle repeated
++        // NPSetWindow() calls very well
++        resizePlugin(width(), height());
+         displayPlugin();
+         show();
+         shown = true;
+-        if (isVisible()) resizePlugin(width(), height());
+     }
+ }
  
+@@ -97,6 +109,7 @@ NSPluginInstance::~NSPluginInstance()
+    kdDebug() << "release" << endl;
+    _loader->release();
+    kdDebug() << "<- NSPluginInstance::~NSPluginInstance" << endl;
++   delete stub;
+ }
  
-diff -up kdebase-3.5.8/nsplugins/viewer/Makefile.am.new-flash kdebase-3.5.8/nsplugins/viewer/Makefile.am
---- kdebase-3.5.8/nsplugins/viewer/Makefile.am.new-flash	2005-09-10 03:25:39.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/viewer/Makefile.am	2007-12-14 11:11:35.000000000 -0600
-@@ -1,12 +1,12 @@
--INCLUDES = -I$(top_srcdir)/nsplugins -I$(top_builddir)/nsplugins $(all_includes)
-+INCLUDES = -I$(top_srcdir)/nsplugins -I$(top_builddir)/nsplugins $(all_includes) $(GTK_CFLAGS)
- METASOURCES = AUTO
  
- bin_PROGRAMS = nspluginviewer 
+@@ -445,19 +458,19 @@ NSPluginInstance *NSPluginLoader::newIns
+    if ( mime=="application/x-shockwave-flash" )
+        embed = true; // flash doesn't work in full mode :(
  
- nspluginviewer_SOURCES = NSPluginCallbackIface.stub NSPluginClassIface.skel \
--	nsplugin.cpp viewer.cpp kxt.cpp qxteventloop.cpp
-+	nsplugin.cpp viewer.cpp kxt.cpp qxteventloop.cpp glibevents.cpp
- nspluginviewer_LDFLAGS = $(all_libraries) $(KDE_RPATH) -export-dynamic
--nspluginviewer_LDADD = $(LIB_KIO) $(LIB_KPARTS) -lXt
-+nspluginviewer_LDADD = $(LIB_KIO) $(LIB_KPARTS) -lXt $(GTK_LIBS)
++   NSPluginInstance *plugin = new NSPluginInstance( parent );
++   kdDebug() << "<- NSPluginLoader::NewInstance = " << (void*)plugin << endl;
  
- NSPluginCallbackIface_DIR = $(srcdir)/..
+    // get plugin instance
+-   DCOPRef inst_ref = cls->newInstance( url, mime, embed, argn, argv, appId, callbackId, reload, doPost, postData);
++   DCOPRef inst_ref = cls->newInstance( url, mime, embed, argn, argv, appId, callbackId, reload, doPost, postData, plugin->winId());
+    if ( inst_ref.isNull() )
+    {
+       kdDebug() << "Couldn't create plugin instance" << endl;
++      delete plugin;
+       return 0;
+    }
  
-diff -up kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h.new-flash kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h
---- kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h.new-flash	2005-11-19 05:08:29.000000000 -0600
-+++ kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h	2007-12-14 10:59:58.000000000 -0600
-@@ -50,7 +50,7 @@ k_dcop:
-   virtual DCOPRef newInstance(QString url, QString mimeType, bool embed,
-                               QStringList argn, QStringList argv,
-                               QString appId, QString callbackId, bool reload,
--                              bool doPost, QByteArray postData) = 0;
-+                              bool doPost, QByteArray postData, long xembed) = 0;
-   virtual QString getMIMEDescription() = 0;
+-   NSPluginInstance *plugin = new NSPluginInstance( parent, inst_ref.app(),
+-                                                    inst_ref.object() );
+-
+-   kdDebug() << "<- NSPluginLoader::NewInstance = " << (void*)plugin << endl;
++   plugin->init( inst_ref.app(), inst_ref.object() );
  
- };
-diff -up /dev/null kdebase-3.5.8/nsplugins/viewer/glibevents.cpp
+    return plugin;
+ }
+diff -up /dev/null kdebase-3.5.8/nsplugins/configure.in.in
 --- /dev/null	2007-12-13 13:41:14.965729569 -0600
-+++ kdebase-3.5.8/nsplugins/viewer/glibevents.cpp	2007-12-14 10:59:58.000000000 -0600
-@@ -0,0 +1,43 @@
-+/*
-+  Copyright (c) 2007 Lubos Lunak <l.lunak at suse.cz>
-+ 
-+  This program is free software; you can redistribute it and/or modify
-+  it under the terms of the GNU General Public License as published by
-+  the Free Software Foundation; either version 2 of the License, or
-+  (at your option) any later version.
-+ 
-+  This program is distributed in the hope that it will be useful,
-+  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+  GNU General Public License for more details.
-+ 
-+  You should have received a copy of the GNU General Public License
-+  along with this program; if not, write to the Free Software
-+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-+ 
-+*/                                                                            
-+
-+#include "glibevents.h"
-+
-+#include <qapplication.h>
-+
-+GlibEvents::GlibEvents()
-+    {
-+    g_main_context_ref( g_main_context_default());
-+    connect( &timer, SIGNAL( timeout()), SLOT( process()));
-+    // TODO Poll for now
-+    timer.start( 10 );
-+    }
-+
-+GlibEvents::~GlibEvents()
-+    {
-+    g_main_context_unref( g_main_context_default());
-+    }
-+
-+void GlibEvents::process()
-+    {
-+    while( g_main_context_pending( g_main_context_default()))
-+        g_main_context_iteration( g_main_context_default(), false );
-+    }
-+
-+#include "glibevents.moc"
++++ kdebase-3.5.8/nsplugins/configure.in.in	2007-12-14 11:30:19.000000000 -0600
+@@ -0,0 +1 @@
++KDE_PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 0.21 )
 diff -up /dev/null kdebase-3.5.8/nsplugins/viewer/glibevents.h
 --- /dev/null	2007-12-13 13:41:14.965729569 -0600
-+++ kdebase-3.5.8/nsplugins/viewer/glibevents.h	2007-12-14 10:59:58.000000000 -0600
++++ kdebase-3.5.8/nsplugins/viewer/glibevents.h	2007-12-14 11:30:19.000000000 -0600
 @@ -0,0 +1,41 @@
 +/*
 +  Copyright (c) 2007 Lubos Lunak <l.lunak at suse.cz>
@@ -156,54 +126,54 @@
 +    };
 +
 +#endif
-diff -up kdebase-3.5.8/nsplugins/viewer/nsplugin.h.new-flash kdebase-3.5.8/nsplugins/viewer/nsplugin.h
---- kdebase-3.5.8/nsplugins/viewer/nsplugin.h.new-flash	2007-10-08 04:51:23.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/viewer/nsplugin.h	2007-12-14 10:59:58.000000000 -0600
-@@ -165,13 +165,13 @@ public:
-   // constructor, destructor
-   NSPluginInstance( NPP privateData, NPPluginFuncs *pluginFuncs, KLibrary *handle,
- 		    int width, int height, QString src, QString mime,
--                    QString appId, QString callbackId, bool embed,
-+                    QString appId, QString callbackId, bool embed, WId xembed,
- 		    QObject *parent, const char* name=0 );
-   ~NSPluginInstance();
+diff -up kdebase-3.5.8/nsplugins/viewer/Makefile.am.flash kdebase-3.5.8/nsplugins/viewer/Makefile.am
+--- kdebase-3.5.8/nsplugins/viewer/Makefile.am.flash	2005-09-10 03:25:39.000000000 -0500
++++ kdebase-3.5.8/nsplugins/viewer/Makefile.am	2007-12-14 11:30:19.000000000 -0600
+@@ -1,12 +1,12 @@
+-INCLUDES = -I$(top_srcdir)/nsplugins -I$(top_builddir)/nsplugins $(all_includes)
++INCLUDES = -I$(top_srcdir)/nsplugins -I$(top_builddir)/nsplugins $(all_includes) $(GTK_CFLAGS)
+ METASOURCES = AUTO
  
-   // DCOP functions
-   void shutdown();
--  int winId() { return XtWindow(_form); }
-+  int winId() { return _form != 0 ? XtWindow(_form) : 0; }
-   int setWindow(int remove=0);
-   void resizePlugin(int w, int h);
-   void javascriptResult(int id, QString result);
-@@ -232,6 +232,7 @@ private:
-   NPPluginFuncs _pluginFuncs;
+ bin_PROGRAMS = nspluginviewer 
  
-   Widget _area, _form, _toplevel;
-+  WId _xembed_window;
-   QString _baseURL;
-   int _width, _height;
+ nspluginviewer_SOURCES = NSPluginCallbackIface.stub NSPluginClassIface.skel \
+-	nsplugin.cpp viewer.cpp kxt.cpp qxteventloop.cpp
++	nsplugin.cpp viewer.cpp kxt.cpp qxteventloop.cpp glibevents.cpp
+ nspluginviewer_LDFLAGS = $(all_libraries) $(KDE_RPATH) -export-dynamic
+-nspluginviewer_LDADD = $(LIB_KIO) $(LIB_KPARTS) -lXt
++nspluginviewer_LDADD = $(LIB_KIO) $(LIB_KPARTS) -lXt $(GTK_LIBS)
  
-@@ -281,7 +282,7 @@ public:
-   DCOPRef newInstance(QString url, QString mimeType, bool embed,
-                       QStringList argn, QStringList argv,
-                       QString appId, QString callbackId, bool reload, bool post,
--                      QByteArray postData );
-+                      QByteArray postData, long xembed );
-   void destroyInstance( NSPluginInstance* inst );
-   bool error() { return _error; }
+ NSPluginCallbackIface_DIR = $(srcdir)/..
  
-diff -up kdebase-3.5.8/nsplugins/viewer/viewer.cpp.new-flash kdebase-3.5.8/nsplugins/viewer/viewer.cpp
---- kdebase-3.5.8/nsplugins/viewer/viewer.cpp.new-flash	2006-01-19 11:01:49.000000000 -0600
-+++ kdebase-3.5.8/nsplugins/viewer/viewer.cpp	2007-12-14 10:59:58.000000000 -0600
-@@ -52,6 +52,7 @@
+diff -up kdebase-3.5.8/nsplugins/viewer/viewer.cpp.flash kdebase-3.5.8/nsplugins/viewer/viewer.cpp
+--- kdebase-3.5.8/nsplugins/viewer/viewer.cpp.flash	2006-01-19 11:01:49.000000000 -0600
++++ kdebase-3.5.8/nsplugins/viewer/viewer.cpp	2007-12-14 11:32:58.000000000 -0600
+@@ -52,8 +52,13 @@
  #include <X11/Shell.h>
  #else
  #include "qxteventloop.h"
 +#include "glibevents.h"
  #endif
  
++// FIXME: this is just for calling gtk_init and fix the buggy flash player
++// initialization
++#include <gtk/gtkmain.h>
++
  /**
-@@ -249,6 +250,7 @@ int main(int argc, char** argv)
+  *  Use RLIMIT_DATA on systems that don't define RLIMIT_AS,
+  *  such as FreeBSD 4.
+@@ -215,6 +220,10 @@ bool qt_set_socket_handler( int sockfd, 
+ 
+ int main(int argc, char** argv)
+ {
++    // FIXME; the gtk_init() call is here to fix a bug in flash player that does
++    // not call it properly, or call it in a wrong place
++    gtk_init(&argc, &argv);
++
+     // nspluginviewer is a helper app, it shouldn't do session management at all
+    setenv( "SESSION_MANAGER", "", 1 );
+ 
+@@ -249,6 +258,7 @@ int main(int argc, char** argv)
  
     kdDebug(1430) << "4 - create KApplication" << endl;
     KApplication app( argc,  argv, "nspluginviewer" );
@@ -211,9 +181,9 @@
  #endif
  
     {
-diff -up kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp.new-flash kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp
---- kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp.new-flash	2006-10-01 12:31:58.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp	2007-12-14 10:59:58.000000000 -0600
+diff -up kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp.flash kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp
+--- kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp.flash	2006-10-01 12:31:58.000000000 -0500
++++ kdebase-3.5.8/nsplugins/viewer/nsplugin.cpp	2007-12-14 11:30:19.000000000 -0600
 @@ -180,6 +180,12 @@ NPError g_NPN_GetValue(NPP /*instance*/,
           // Offline browsing - no thanks
           *(bool*)value = false;
@@ -516,14 +486,104 @@
  /****************************************************************************/
  
  NSPluginStreamBase::NSPluginStreamBase( NSPluginInstance *instance )
-diff -up kdebase-3.5.8/nsplugins/configure.in.in.new-flash kdebase-3.5.8/nsplugins/configure.in.in
---- kdebase-3.5.8/nsplugins/configure.in.in.new-flash	2007-12-14 11:01:54.000000000 -0600
-+++ kdebase-3.5.8/nsplugins/configure.in.in	2007-12-14 11:08:56.000000000 -0600
-@@ -0,0 +1 @@
-+KDE_PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 0.21 )
-diff -up kdebase-3.5.8/nsplugins/sdk/npapi.h.new-flash kdebase-3.5.8/nsplugins/sdk/npapi.h
---- kdebase-3.5.8/nsplugins/sdk/npapi.h.new-flash	2007-10-08 04:51:23.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/sdk/npapi.h	2007-12-14 10:59:58.000000000 -0600
+diff -up kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h.flash kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h
+--- kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h.flash	2005-11-19 05:08:29.000000000 -0600
++++ kdebase-3.5.8/nsplugins/viewer/NSPluginClassIface.h	2007-12-14 11:30:19.000000000 -0600
+@@ -50,7 +50,7 @@ k_dcop:
+   virtual DCOPRef newInstance(QString url, QString mimeType, bool embed,
+                               QStringList argn, QStringList argv,
+                               QString appId, QString callbackId, bool reload,
+-                              bool doPost, QByteArray postData) = 0;
++                              bool doPost, QByteArray postData, long xembed) = 0;
+   virtual QString getMIMEDescription() = 0;
+ 
+ };
+diff -up /dev/null kdebase-3.5.8/nsplugins/viewer/glibevents.cpp
+--- /dev/null	2007-12-13 13:41:14.965729569 -0600
++++ kdebase-3.5.8/nsplugins/viewer/glibevents.cpp	2007-12-14 11:30:19.000000000 -0600
+@@ -0,0 +1,43 @@
++/*
++  Copyright (c) 2007 Lubos Lunak <l.lunak at suse.cz>
++ 
++  This program is free software; you can redistribute it and/or modify
++  it under the terms of the GNU General Public License as published by
++  the Free Software Foundation; either version 2 of the License, or
++  (at your option) any later version.
++ 
++  This program is distributed in the hope that it will be useful,
++  but WITHOUT ANY WARRANTY; without even the implied warranty of
++  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++  GNU General Public License for more details.
++ 
++  You should have received a copy of the GNU General Public License
++  along with this program; if not, write to the Free Software
++  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
++ 
++*/                                                                            
++
++#include "glibevents.h"
++
++#include <qapplication.h>
++
++GlibEvents::GlibEvents()
++    {
++    g_main_context_ref( g_main_context_default());
++    connect( &timer, SIGNAL( timeout()), SLOT( process()));
++    // TODO Poll for now
++    timer.start( 10 );
++    }
++
++GlibEvents::~GlibEvents()
++    {
++    g_main_context_unref( g_main_context_default());
++    }
++
++void GlibEvents::process()
++    {
++    while( g_main_context_pending( g_main_context_default()))
++        g_main_context_iteration( g_main_context_default(), false );
++    }
++
++#include "glibevents.moc"
+diff -up kdebase-3.5.8/nsplugins/viewer/nsplugin.h.flash kdebase-3.5.8/nsplugins/viewer/nsplugin.h
+--- kdebase-3.5.8/nsplugins/viewer/nsplugin.h.flash	2007-10-08 04:51:23.000000000 -0500
++++ kdebase-3.5.8/nsplugins/viewer/nsplugin.h	2007-12-14 11:30:19.000000000 -0600
+@@ -165,13 +165,13 @@ public:
+   // constructor, destructor
+   NSPluginInstance( NPP privateData, NPPluginFuncs *pluginFuncs, KLibrary *handle,
+ 		    int width, int height, QString src, QString mime,
+-                    QString appId, QString callbackId, bool embed,
++                    QString appId, QString callbackId, bool embed, WId xembed,
+ 		    QObject *parent, const char* name=0 );
+   ~NSPluginInstance();
+ 
+   // DCOP functions
+   void shutdown();
+-  int winId() { return XtWindow(_form); }
++  int winId() { return _form != 0 ? XtWindow(_form) : 0; }
+   int setWindow(int remove=0);
+   void resizePlugin(int w, int h);
+   void javascriptResult(int id, QString result);
+@@ -232,6 +232,7 @@ private:
+   NPPluginFuncs _pluginFuncs;
+ 
+   Widget _area, _form, _toplevel;
++  WId _xembed_window;
+   QString _baseURL;
+   int _width, _height;
+ 
+@@ -281,7 +282,7 @@ public:
+   DCOPRef newInstance(QString url, QString mimeType, bool embed,
+                       QStringList argn, QStringList argv,
+                       QString appId, QString callbackId, bool reload, bool post,
+-                      QByteArray postData );
++                      QByteArray postData, long xembed );
+   void destroyInstance( NSPluginInstance* inst );
+   bool error() { return _error; }
+ 
+diff -up kdebase-3.5.8/nsplugins/sdk/npapi.h.flash kdebase-3.5.8/nsplugins/sdk/npapi.h
+--- kdebase-3.5.8/nsplugins/sdk/npapi.h.flash	2007-10-08 04:51:23.000000000 -0500
++++ kdebase-3.5.8/nsplugins/sdk/npapi.h	2007-12-14 11:30:19.000000000 -0600
 @@ -38,7 +38,7 @@
  
  
@@ -590,7 +650,7 @@
  } NPWindow;
 diff -up /dev/null kdebase-3.5.8/nsplugins/sdk/npruntime.h
 --- /dev/null	2007-12-13 13:41:14.965729569 -0600
-+++ kdebase-3.5.8/nsplugins/sdk/npruntime.h	2007-12-14 10:59:58.000000000 -0600
++++ kdebase-3.5.8/nsplugins/sdk/npruntime.h	2007-12-14 11:30:19.000000000 -0600
 @@ -0,0 +1,399 @@
 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
 +/*
@@ -991,9 +1051,9 @@
 +#endif
 +
 +#endif
-diff -up kdebase-3.5.8/nsplugins/sdk/npupp.h.new-flash kdebase-3.5.8/nsplugins/sdk/npupp.h
---- kdebase-3.5.8/nsplugins/sdk/npupp.h.new-flash	2007-10-08 04:51:23.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/sdk/npupp.h	2007-12-14 10:59:58.000000000 -0600
+diff -up kdebase-3.5.8/nsplugins/sdk/npupp.h.flash kdebase-3.5.8/nsplugins/sdk/npupp.h
+--- kdebase-3.5.8/nsplugins/sdk/npupp.h.flash	2007-10-08 04:51:23.000000000 -0500
++++ kdebase-3.5.8/nsplugins/sdk/npupp.h	2007-12-14 11:30:19.000000000 -0600
 @@ -1,11 +1,11 @@
 -/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
@@ -1687,9 +1747,9 @@
  } NPNetscapeFuncs;
  
  #ifdef XP_MAC
-diff -up kdebase-3.5.8/nsplugins/sdk/prcpucfg.h.new-flash kdebase-3.5.8/nsplugins/sdk/prcpucfg.h
---- kdebase-3.5.8/nsplugins/sdk/prcpucfg.h.new-flash	2007-10-08 04:51:23.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/sdk/prcpucfg.h	2007-12-14 10:59:58.000000000 -0600
+diff -up kdebase-3.5.8/nsplugins/sdk/prcpucfg.h.flash kdebase-3.5.8/nsplugins/sdk/prcpucfg.h
+--- kdebase-3.5.8/nsplugins/sdk/prcpucfg.h.flash	2007-10-08 04:51:23.000000000 -0500
++++ kdebase-3.5.8/nsplugins/sdk/prcpucfg.h	2007-12-14 11:30:19.000000000 -0600
 @@ -276,7 +276,7 @@
  #define PR_BYTES_PER_WORD_LOG2   2
  #define PR_BYTES_PER_DWORD_LOG2  3
@@ -1708,81 +1768,37 @@
  
  #define IS_LITTLE_ENDIAN 1
  #undef  IS_BIG_ENDIAN
-diff -up kdebase-3.5.8/nsplugins/nspluginloader.cpp.new-flash kdebase-3.5.8/nsplugins/nspluginloader.cpp
---- kdebase-3.5.8/nsplugins/nspluginloader.cpp.new-flash	2006-10-01 12:31:58.000000000 -0500
-+++ kdebase-3.5.8/nsplugins/nspluginloader.cpp	2007-12-14 10:59:58.000000000 -0600
-@@ -54,11 +54,16 @@ NSPluginLoader *NSPluginLoader::s_instan
- int NSPluginLoader::s_refCount = 0;
- 
+diff -up kdebase-3.5.8/nsplugins/nspluginloader.h.flash kdebase-3.5.8/nsplugins/nspluginloader.h
+--- kdebase-3.5.8/nsplugins/nspluginloader.h.flash	2006-10-01 12:31:58.000000000 -0500
++++ kdebase-3.5.8/nsplugins/nspluginloader.h	2007-12-14 11:30:19.000000000 -0600
+@@ -43,13 +43,16 @@ class KProcess;
+ class QPushButton;
+ class QGridLayout;
  
--NSPluginInstance::NSPluginInstance(QWidget *parent, const QCString& app, const QCString& id)
--  : DCOPStub(app, id), NSPluginInstanceIface_stub(app, id), EMBEDCLASS(parent)
-+NSPluginInstance::NSPluginInstance(QWidget *parent)
-+  : EMBEDCLASS(parent), stub( NULL )
+-class NSPluginInstance : public EMBEDCLASS, virtual public NSPluginInstanceIface_stub
++class NSPluginInstance : public EMBEDCLASS
  {
-     _loader = 0L;
-     shown = false;
-+}
-+
-+void NSPluginInstance::init(const QCString& app, const QCString& obj)
-+{
-+    stub = new NSPluginInstanceIface_stub( app, obj );
-     QGridLayout *_layout = new QGridLayout(this, 1, 1);
-     KConfig cfg("kcmnspluginrc", false);
-     cfg.setGroup("Misc");
-@@ -80,12 +85,19 @@ void NSPluginInstance::doLoadPlugin() {
-         _button = 0L;
-         _loader = NSPluginLoader::instance();
-         setBackgroundMode(QWidget::NoBackground);
--        setProtocol(QXEmbed::XPLAIN);
--        embed( NSPluginInstanceIface_stub::winId() );
-+        WId winid = stub->winId();
-+        if( winid != 0 ) {
-+            setProtocol(QXEmbed::XPLAIN);
-+            embed( winid );
-+        } else {
-+            setProtocol(QXEmbed::XEMBED);
-+        }
-+        // resize before showing, some plugins are stupid and can't handle repeated
-+        // NPSetWindow() calls very well
-+        resizePlugin(width(), height());
-         displayPlugin();
-         show();
-         shown = true;
--        if (isVisible()) resizePlugin(width(), height());
-     }
- }
- 
-@@ -97,6 +109,7 @@ NSPluginInstance::~NSPluginInstance()
-    kdDebug() << "release" << endl;
-    _loader->release();
-    kdDebug() << "<- NSPluginInstance::~NSPluginInstance" << endl;
-+   delete stub;
- }
- 
- 
-@@ -445,19 +458,19 @@ NSPluginInstance *NSPluginLoader::newIns
-    if ( mime=="application/x-shockwave-flash" )
-        embed = true; // flash doesn't work in full mode :(
+   Q_OBJECT
  
-+   NSPluginInstance *plugin = new NSPluginInstance( parent );
-+   kdDebug() << "<- NSPluginLoader::NewInstance = " << (void*)plugin << endl;
+ public:
+-    NSPluginInstance(QWidget *parent, const QCString& app, const QCString& id);
++    NSPluginInstance(QWidget *parent);
++    void init( const QCString& app, const QCString& obj );
+     ~NSPluginInstance();
++public: // wrappers
++    void javascriptResult( int id, QString result ) { stub->javascriptResult( id, result ); }
  
-    // get plugin instance
--   DCOPRef inst_ref = cls->newInstance( url, mime, embed, argn, argv, appId, callbackId, reload, doPost, postData);
-+   DCOPRef inst_ref = cls->newInstance( url, mime, embed, argn, argv, appId, callbackId, reload, doPost, postData, plugin->winId());
-    if ( inst_ref.isNull() )
-    {
-       kdDebug() << "Couldn't create plugin instance" << endl;
-+      delete plugin;
-       return 0;
-    }
+ private slots:
+     void doLoadPlugin();
+@@ -62,6 +65,11 @@ protected:
+     bool shown;
+     QPushButton *_button;
+     QGridLayout *_layout;
++    NSPluginInstanceIface_stub* stub;
++private: // wrappers
++    void displayPlugin() { stub->displayPlugin(); }
++    void resizePlugin( int w, int h ) { stub->resizePlugin( w, h ); }
++    void shutdown() { if( stub ) stub->shutdown(); }
+ };
  
--   NSPluginInstance *plugin = new NSPluginInstance( parent, inst_ref.app(),
--                                                    inst_ref.object() );
--
--   kdDebug() << "<- NSPluginLoader::NewInstance = " << (void*)plugin << endl;
-+   plugin->init( inst_ref.app(), inst_ref.object() );
  
-    return plugin;
- }


Index: kdebase3.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase3/devel/kdebase3.spec,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- kdebase3.spec	14 Dec 2007 17:25:23 -0000	1.8
+++ kdebase3.spec	14 Dec 2007 17:34:52 -0000	1.9
@@ -22,7 +22,7 @@
 %endif
 
 Version: 3.5.8
-Release: 21%{?dist}
+Release: 22%{?dist}
 
 %if 0%{?fedora} > 8
 Name: kdebase3
@@ -775,7 +775,7 @@
 
 
 %changelog
-* Thu Dec 13 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-21
+* Thu Dec 13 2007 Rex Dieter <rdieter[AT]fedoraproject.org> - 3.5.8-22
 - nspluginviewer: respin flash patch with +gtk_init (#410651)
 - use kde's kde.desktop for xsession support
 




More information about the fedora-extras-commits mailing list