[ Return to Bugs & Features | Roadmap 1.3 | Post Text | Post File | Prev | Next ]
|Status:||5 - New|
|Priority:||3 - Moderate, e.g. unable to compile the software|
|Scope:||3 - Applies to all machines and operating systems|
|Summary:||Fullscreen windows not updated when screens are added or removed|
|Fix Version:||Unassigned (SVN: v12826)|
Trouble Report Files:
[ Post File ]
Trouble Report Comments:
[ Post Text ]
06:41 Apr 17, 2018
|If screens ("outputs" using RandR nomenclature) are added or removed, existing fullscreen windows are not updated. For example: |
* Start the "fullscreen" test application when you have one screen
* Select "All Screens" and "FullScreen".
* Add a new screen. This can possibly happen if you plugin or turn on a additional screen. Another case is if the application is running inside a Xvnc session and the viewer switches to "All Screens"+"FullScreen" on a multi monitor client. It can also happen if the user manually enables an earlier disabled screen. (For testing, I'm using: "sleep 10; xrandr --output VGA-1 --mode 1280x1024 --right-of LVDS-1" to enable a previously disabled output.)
In this case, the fullscreen application will still only cover the screen(s) that existed before the additional screen was added. The only way to get the application to cover the new screen as well is to turn fullscreen mode off+on.
If you do the opposite, remove a screen, things are worse: The "fullscreen" test application will print:
"drawing size 32747 32407"
Then, on my CentOS 7 machine, either the Xserver or gnome-shell crashes, or the OOM killer starts working.
The "crash" part needs to be fixed, and there needs to be some way of updating the fullscreen window to cover new windows. I'm currently investigating if/how FL_SCREEN_CONFIGURATION_CHANGED can be used for this. If this is the way to go, test/fullscreen should use this approach.
12:20 Apr 17, 2018
|The crash only happens if there's a second screen (later to be removed) present when "fullscreen" starts. If the screen is added after it has started, there's no problem. I've also determined that the window is actually resized to a strange size: |
xwininfo: Window id: 0x2400002 "FLTK"
Absolute upper-left X: 0
Absolute upper-left Y: 0
Relative upper-left X: 0
Relative upper-left Y: 0
Visual Class: TrueColor
Border width: 0
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+0 --31167+0 --31167-0 +0-0
05:15 May 07, 2018
|The crash problems seems to be caused by WM bugs. |
As for handling added/removed screens, I've implemented this for TigerVNC, see:
Only possible for Windows and Linux though.
The "fullscreen" example should be updated accordingly; call fullscreen() upon FL_SCREEN_CONFIGURATION_CHANGED.
07:16 Jan 01, 2019
|Thanks for the report and the shown workaround (is it as simple as described in comment #3?). I can't test since I don't have a system where I can similate screen addition and removal right now). |
Anyway, I'm going to reduce priority to 3 (moderate) since this is a very special issue.
[ Return to Bugs & Features | Post Text | Post File ]