Bug 4229

Summary: Support _NET_WM_FULLSCREEN_MONITORS etc - select fullscreen monitors
Product: ThinLinc Reporter: Peter Åstrand <astrand>
Component: Client platformsAssignee: Pierre Ossman <ossman>
Status: CLOSED FIXED    
Severity: Normal Keywords: hean01_tester
Priority: P2    
Version: 3.2.0   
Target Milestone: 4.0.0   
Hardware: PC   
OS: Unknown   
Acceptance Criteria:
Bug Depends on: 3968, 3673, 3892    
Bug Blocks: 14    

Description Peter Åstrand cendio 2012-03-06 15:47:51 CET
This bug could be seen as a first step (of 3 or so) towards full multi head support. This is the client side part. Besides fixing the worst fullscreen bugs, we need to make it possible to configure which screens the client should cover. For X11 platforms, this means using _NET_WM_FULLSCREEN_MONITORS. We also need to use similar features on the other platforms. 

Citrix has a very flexible configuration syntax which allows you to exactly control which monitors to use, see:

http://support.citrix.com/proddocs/topic/receiver-linux-12-0/linux-troubleshooting-known-issues-display.html

But probably this is somewhat overkill at this point. I think it should be sufficient to select between "all" or "current" screen. 

The time estimation for this bug is the basis for the offer to Saab, see Issue 13107.
Comment 1 Peter Åstrand cendio 2012-06-26 08:54:18 CEST
Oracle Virtual Desktop Client doc:

http://docs.oracle.com/cd/E27795_01/E27796/html/features-multi-monitors.html
Comment 2 Pierre Ossman cendio 2012-07-13 13:27:27 CEST
TigerVNC fixed in r25479.
Comment 3 Pierre Ossman cendio 2012-07-13 13:36:57 CEST
tlclient updated in 25481.
Comment 4 Pierre Ossman cendio 2012-07-13 13:56:51 CEST
Documentation updated in r25484, r25485 and r25487.
Comment 5 Pierre Ossman cendio 2012-07-20 13:31:43 CEST
Something is wrong. Not resizing properly when I disable multi-head support.
Comment 6 Pierre Ossman cendio 2012-07-20 14:45:51 CEST
(In reply to comment #5)
> Something is wrong. Not resizing properly when I disable multi-head support.

Fixed in r25521.
Comment 7 Pierre Ossman cendio 2012-07-20 16:16:39 CEST
(In reply to comment #6)
> (In reply to comment #5)
> > Something is wrong. Not resizing properly when I disable multi-head support.
> 
> Fixed in r25521.

Follow-up in r25526.
Comment 8 Peter Åstrand cendio 2012-07-30 10:20:59 CEST
I think we should use the term "multi monitor" rather than "multi head". This is consistent with Wikipedia, the Microsoft documentation etc, and also easier to understand. My suggestion is that we should at least change the user visible naming, ie configuration variable and documentation.
Comment 9 Peter Åstrand cendio 2012-07-30 11:16:35 CEST
Ie, FULL_SCREEN_MULTI_HEAD should be renamed to FULL_SCREEN_ALL_MONITORS. That would also match the vncviewer param FullScreenAllMonitors.
Comment 10 Henrik Andersson cendio 2012-08-17 15:40:24 CEST
Issue 13518 and 13431 mentions the same problem that they
need to F8 and switch between fullscreen to get desktop covers
both screens, comments to/by Pierre is that this is probably a 
problem tlclient not detecting the total screen area.

Problem occurr on Win7 client.
Comment 11 Pierre Ossman cendio 2012-08-17 15:48:03 CEST
OS X is behaving strangely:

 - Multi-head just gives a window on the main screen

 - Non-multi-head works on the main screen, but doing it on the second screen I also get a black main screen.

 - Keyboard grabbing is a bit wonky. Might be expected, but I need to investigate.
Comment 12 Pierre Ossman cendio 2012-08-17 16:05:29 CEST
(In reply to comment #8)
> I think we should use the term "multi monitor" rather than "multi head". This
> is consistent with Wikipedia, the Microsoft documentation etc, and also easier
> to understand. My suggestion is that we should at least change the user visible
> naming, ie configuration variable and documentation.

Fixed in r25622 and r25623.
Comment 13 Pierre Ossman cendio 2012-08-17 16:37:56 CEST
(In reply to comment #10)
> Issue 13518 and 13431 mentions the same problem that they
> need to F8 and switch between fullscreen to get desktop covers
> both screens, comments to/by Pierre is that this is probably a 
> problem tlclient not detecting the total screen area.
> 
> Problem occurr on Win7 client.

tlclient wasn't properly updated. Fixed in r25624.

Still doesn't work though, at least not with Gnome 3. Might be a window manager interaction problem.
Comment 14 Pierre Ossman cendio 2012-08-22 12:34:11 CEST
Some kind of WM problem. Turned on debugging in mutter and it never seems to consider our window fullscreen. That's why it is resizing it so it only fits the single monitor. Need to dig around more...
Comment 15 Pierre Ossman cendio 2012-08-22 13:25:10 CEST
This is a bug in Mutter. It doesn't pay attention to _NET_WM_FULLSCREEN_MONITORS on new windows.

I've also discovered that it also does silly things with _NET_WM_STATE_FULLSCREEN. Instead of directly presenting the window fullscreen, it resizes it to a "standard" size, then reactivates fullscreen.

Need to think about what we can do to work around these issues...
Comment 16 Pierre Ossman cendio 2012-08-22 13:37:11 CEST
xfwm4 also forgets to check _NET_WM_FULLSCREEN_MONITORS on startup. It does not do the silly toggle of fullscreen though.
Comment 17 Pierre Ossman cendio 2012-08-23 16:56:57 CEST
Startup full screen hopefully fixed in r25642.
Comment 18 Pierre Ossman cendio 2012-08-27 16:44:42 CEST
(In reply to comment #11)
> OS X is behaving strangely:
> 
>  - Multi-head just gives a window on the main screen
> 

Stupid bug in the FLTK patch. Fixed in r25656.

>  - Non-multi-head works on the main screen, but doing it on the second screen I
> also get a black main screen.
> 

Fixed in r25660.

>  - Keyboard grabbing is a bit wonky. Might be expected, but I need to
> investigate.

The other fixes sorted out most of this. One issue remains though; grabbing the keyboard on the primary monitor makes it fail to release focus on other monitors. Works fine on a secondary monitor though. This seems to be an OS X bug as I cannot see anything in our code that does something special for the primary monitor. I think we'll just have to live with it for now.
Comment 19 Pierre Ossman cendio 2012-09-10 14:42:12 CEST
The shield window is acting up again on OS X.
Comment 20 Pierre Ossman cendio 2012-09-11 12:34:41 CEST
People are not happy with the "full screen" session size changing behaviour depending on the "all monitors" check box. We've decided to clarify things by having explicit session size selections for one and multiple monitors.
Comment 21 Pierre Ossman cendio 2012-09-11 13:16:29 CEST
(In reply to comment #19)
> The shield window is acting up again on OS X.

Stupid. Forgot to include config.h properly so the previous fix didn't really work. New vendor drop in r25773.
Comment 22 Pierre Ossman cendio 2012-09-11 16:56:05 CEST
(In reply to comment #20)
> People are not happy with the "full screen" session size changing behaviour
> depending on the "all monitors" check box. We've decided to clarify things by
> having explicit session size selections for one and multiple monitors.

Fixed in r25779.

Documentation updated in r25782.

Need to fix the screen shot.
Comment 23 Pierre Ossman cendio 2012-09-11 16:58:57 CEST
*** Bug 4387 has been marked as a duplicate of this bug. ***
Comment 24 Pierre Ossman cendio 2012-09-26 17:01:44 CEST
Something is broken on Windows. Selecting "Current monitor" results in a 0x0 session.
Comment 25 Pierre Ossman cendio 2012-09-26 17:04:30 CEST
(In reply to comment #24)
> Something is broken on Windows. Selecting "Current monitor" results in a 0x0
> session.

Fixed in r25914.
Comment 26 Pierre Ossman cendio 2012-09-27 09:35:55 CEST
(In reply to comment #22)
> 
> Need to fix the screen shot.

Fixed in r25916 on bug 4386.
Comment 27 Henrik Andersson cendio 2012-10-01 08:48:48 CEST
I get a unwanted behavour with folowing config:

Session size: 1024x768
Resize session: Checked
Fullscreen: Checked

This will start a 1024x768 session in fullscreen which gives me black borders around the session, if i go out of fullscreen and enters fullscreen again the
automatic session resize is kicked into action and resizes the session to my
current screensize.

Wanted behavour would probably be, ignore session size when both automatic resize/fullscreen is checked and make session match client screen size.
Comment 28 Henrik Andersson cendio 2012-10-01 14:07:10 CEST
I see a strange behavior on this combination of settings on MacOsX:

Work area, resize remote session.., fullscreen and enable
fullscreen over all monitors.


The session is not centered on both monitors, the left one is used with
workarea session size from the right monitor, and the right monitor is blank.

If i use a lower resolution on left then right monitor which will bring the 
scrollbars of vnc on the left monitor and scrolls it seems like vnc crashes ?
Comment 29 Henrik Andersson cendio 2012-10-01 14:07:39 CEST
(In reply to comment #28)
> I see a strange behavior on this combination of settings on MacOsX:
> 
> Work area, resize remote session.., fullscreen and enable
> fullscreen over all monitors.
> 
> 
> The session is not centered on both monitors, the left one is used with
> workarea session size from the right monitor, and the right monitor is blank.
> 
> If i use a lower resolution on left then right monitor which will bring the 
> scrollbars of vnc on the left monitor and scrolls it seems like vnc crashes ?

this was not reproducible on Win7 klient
Comment 30 Pierre Ossman cendio 2012-10-02 16:48:57 CEST
(In reply to comment #28)
> I see a strange behavior on this combination of settings on MacOsX:
> 
> Work area, resize remote session.., fullscreen and enable
> fullscreen over all monitors.
> 
> 
> The session is not centered on both monitors, the left one is used with
> workarea session size from the right monitor, and the right monitor is blank.
> 
> If i use a lower resolution on left then right monitor which will bring the 
> scrollbars of vnc on the left monitor and scrolls it seems like vnc crashes ?

Fixed in r25945.
Comment 31 Henrik Andersson cendio 2012-10-03 07:36:46 CEST
(In reply to comment #27)
> I get a unwanted behavour with folowing config:
> 
> Session size: 1024x768
> Resize session: Checked
> Fullscreen: Checked
> 
> This will start a 1024x768 session in fullscreen which gives me black borders
> around the session, if i go out of fullscreen and enters fullscreen again the
> automatic session resize is kicked into action and resizes the session to my
> current screensize.
> 
> Wanted behavour would probably be, ignore session size when both automatic
> resize/fullscreen is checked and make session match client screen size.

by design
Comment 32 Henrik Andersson cendio 2012-10-03 08:53:02 CEST
(In reply to comment #30)
> (In reply to comment #28)
> > I see a strange behavior on this combination of settings on MacOsX:
> > 
> > Work area, resize remote session.., fullscreen and enable
> > fullscreen over all monitors.
> > 
> > 
> > The session is not centered on both monitors, the left one is used with
> > workarea session size from the right monitor, and the right monitor is blank.
> > 
> > If i use a lower resolution on left then right monitor which will bring the 
> > scrollbars of vnc on the left monitor and scrolls it seems like vnc crashes ?
> 
> Fixed in r25945.

This is now working.
Comment 33 Henrik Andersson cendio 2012-10-03 08:53:44 CEST
latest tests done with ThinLinc client build 3670
Comment 34 Peter Åstrand cendio 2012-10-09 09:22:52 CEST
According to Issue13737, it seems like override-redirect with multimonitor does not work any longer.
Comment 35 Pierre Ossman cendio 2012-10-09 09:50:07 CEST
WORKSFORME. Tested with build 3676.