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-----