Re: Bug#462690: flashplugin-nonfree's new fullscreen mode doesn't work with ion3

Ben Hutchings <ben-/[email protected]>
Newsgroups gmane.comp.window-managers.ion.general
Message-ID <[email protected]>
On Sun, 2008-01-27 at 12:24 +0100, Johannes Weiss wrote:
> Hi,
> 
> > > Package: ion3
> > > Version: 20080103-1
> > > Severity: normal
> > > 
> > > the fullscreen window opens shortly but closes immediately...
> > > In GNOME it works.
> > 
> > I noticed a similar problem myself on one web site, but assumed it was a
> > site-specific scripting bug.  If it affects Flash full-screen mode in
> > general, this is probably a bug in Flash - it's very unlikely that Ion3
> > is telling the window to close.  However it may be possible to configure
> > a kluge-rule for Ion3 that will work around the bug.  Can you point to a
> > specific web site that demonstrates this problem?
> 
> It affects the NEW (since flash 9.0.115.0) fullscreen-mode in general.
> In older flashplayers it was not possible (under Linux) to switch to
> fullscreen-mode on an existing window. That was very bad, because you had
> to watch e.g. youtube-videos from the beginning when you wanted to switch to
> fullscreen.
> That is now fixed with a real flash fullscreen mode, but it does work with ion
> at all. Some sample sites:
> 
> - http://youtube.com -- choose any video and press fullscreen
> - http://myvideo.de -- the same thing
> - http://flowplayer.org/demo/h264
> 
> be sure to have installed
> ii  flashplugin-nonfree 9.0.115.0.1         Adobe Flash Player plugin installer

This seems to be a bug in Flash.  I was able to workaround this by
adding a nasty hack to cfg_ion.lua:

-- Flash player opens full-screen windows from Firefox with size request
-- 200x200.  It closes them if they lose focus, but also if they get focus
-- too quickly.  Therefore delay focus for 100 ms.
-- Note that we can't create a timer in the match function, and we can't
-- change switchto in the hook function, so we need both.

defwinprop {
   class = "Firefox-bin",
   match = function(prop, cwin, id)
	      local geom = cwin:geom()
	      return geom.w == 200 and geom.h == 200
	   end,
   switchto = false,
}

ioncore.get_hook("clientwin_do_manage_alt"):add(
   function(cwin, table)
      local ident = cwin:get_ident()
      local geom = cwin:geom()
      if ident.class == "Firefox-bin" and geom.w == 200 and geom.h == 200 then
	 local timer = ioncore.create_timer()
	 timer:set(100, function() cwin:goto() end)
	 return true
      else
	 return false
      end
   end
)

Ben.

-- 
Ben Hutchings
One of the nice things about standards is that there are so many of them.
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBHnJbD79ZNCRIGYgcRAtdKAKCTVtYBl07Oq/ajq+USahHmv1Y+4ACfQ/PH
Aqb7sxzr5MsLQgShPs4lx8g=
=D4Yy
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.