Bug 118038

Summary: Flashs movies don't scale to fit konqueror window when resized, eg: google video or open an swf directly
Product: [Applications] konqueror Reporter: Eric Trottier <schloob>
Component: nspluginsAssignee: George Staikos <staikos>
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Eric Trottier 2005-12-09 23:36:38 UTC
Version:            (using KDE KDE 3.5.0)
Installed from:    Gentoo Packages
Compiler:          gcc 3.4.4 
OS:                Linux

If I go to say, video.google.com to watch a video (they use flash), the video doesn't auto-scale when I resize the browser window, it stays the same size. So if I make the window smaller, the video will not fit on the screen. When I use firefox, the video resizes to fit the new screen size.

The same behavior is exhibited when navigating directly to an flash movie, ie: typing the path to the movie in the location bar.
Comment 1 Maksim Orlovich 2006-09-29 00:48:08 UTC
SVN commit 589919 by orlovich:

- Make sure we always size the plugin:
    - Fixes google videos showing up.
    - Fixes acroread in background tab.
 
- Make sure to notify the plugin directly of size changes:
    - Fixes resizing of google videos
    - Makes sizing of acroread more reliable
    
BUG:117603
BUG:125076
BUG:118038

... And potentially a couple others, will double-check.


 M  +5 -0      nspluginloader.cpp  
 M  +1 -0      nspluginloader.h  
 M  +1 -5      viewer/nsplugin.cpp  
 M  +0 -1      viewer/nsplugin.h  


--- branches/KDE/3.5/kdebase/nsplugins/nspluginloader.cpp #589918:589919
@@ -120,6 +120,11 @@
   kdDebug() << "NSPluginInstance(client)::resizeEvent" << endl;
 }
 
+void NSPluginInstance::showEvent(QShowEvent *event)
+{
+  EMBEDCLASS::showEvent(event);
+  resizePlugin(width(), height());
+}
 
 /*******************************************************************************/
 
--- branches/KDE/3.5/kdebase/nsplugins/nspluginloader.h #589918:589919
@@ -56,6 +56,7 @@
 
 protected:
     void resizeEvent(QResizeEvent *event);
+    void showEvent  (QShowEvent *);
     void windowChanged(WId w);
     class NSPluginLoader *_loader;
     bool shown;
--- branches/KDE/3.5/kdebase/nsplugins/viewer/nsplugin.cpp #589918:589919
@@ -588,7 +588,6 @@
    : DCOPObject(), QObject( parent, name ) 
 {
     Q_UNUSED(embed);
-   _firstResize = true;
    _visible = false;
    _npp = privateData;
    _npp->ndata = this;
@@ -988,10 +987,7 @@
 
    resizeWidgets(XtWindow(_form), _width, _height);
 
-   if (_firstResize) {
-      _firstResize = false;
-      setWindow();
-   }
+   setWindow();
 
    kdDebug(1431) << "<- NSPluginInstance::resizePlugin" << endl;
 }
--- branches/KDE/3.5/kdebase/nsplugins/viewer/nsplugin.h #589918:589919
@@ -220,7 +220,6 @@
 
   bool _destroyed;
   bool _visible;
-  bool _firstResize;
   void addTempFile(KTempFile *tmpFile);
   QPtrList<KTempFile> _tempFiles;
   NSPluginCallbackIface_stub *_callback;