Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Fullscreen hack for Flash Plugin
Author: Alistair Buxton <a.j.buxton@gmail.com>
Why
---
Flash plugin incorrectly determines the fullscreen resolution when using nvidia twinview. The result is that fullscreen windows fill the primary monitor, but the video gets scaled as if the primary monitor had the resolution of the total display area. Flash also
drops out of fullscreen mode when you try to do anything on the
other monitor.
How
---
There are two hacks. One for NPAPI Flash (Firefox etc) and one for PPAPI Flash (Google Chrome).
The NPAPI hack patches the XGetGeometry call which flash uses to determine screen size. If XGetGeometry would return the size of the root window, the patch causes it to instead return the size of a single monitor, selected based on mouse position. With NPAPI the
Flash fullscreen window opens on the monitor where the Flash plugin
was first opened, and mouse position is a good approximation as long
as you don't frag the window to another monitor. If you do, just reload the page.
The PPAPI hack works differently. This API has it's own fullscreen
functions which are just as broken as Flash. But these use X11 macros
which cannot be patched. So instead I patch the Display struct returned
by XOpenDisplay. Under PPAPI the Flash fullscreen window always opens
on the primary monitor as far as I can tell, so I always insert the dimensions of screen 0.
Fullscreen mode is no longer dropped when Flash loses focus by simply masking out the PropertyChange X events, stopping the behaviour entirely.
Config
------
None. (It works by Xinerama.)
Dependencies
------------
sudo apt-get install build-essential libx11-dev libxinerama-dev libxrandr-dev
Build
-----
make Usage
-----
env LD_PRELOAD=/path/to/libfshack-npapi.so firefox %u
env LD_PRELOAD=/path/to/libfshack-ppapi.so google-chrome %u
You can put these lines into custom .desktop files and then add those to your menus.

About

A preload library that fixes fullscreen flash.

Resources

Stars

66 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages