HTML5 full screen.

In order to support full screen mode the server has to support either on-the-fly-resizing or reconnection-on-resize or be prepared for full screen mode. On-the-fly-resizing requires support of dynamic channels with "Display channel" that is available in newer Windows systems like Windows2012R2, Windows10 etc.


  Server supports on-the-fly-resizing (dynamic Display channel)

   1. no future configuration needed, the full screen button will be present in top menu, 
       if not forcibly disabled (*\settings.js -> W.showfullscreenbutton = "no";)

   2. even if server supports on-the-fly-resizing you still may configure/edit 
       www\software\html5\settings.js -> W.full_screen = 2; in this case the session will take from start 
       the fully available screen size and will not anymore change it self during resizing.


  Server doesn't support on-the-fly-resizing (old systems like Windows7, Windows2008, Windows XP)


   1. either you must configure/edit www\software\html5\settings.js -> W.reconnectonresize = true;
       in this reconnect-on-resize mode the client will try to reconnect session with new dimensions, 
       but highly not recommended because if you run file transfer or sound gets played these actions will be interrupted.

   2. or you must configure/edit www\software\html5\settings.js -> W.full_screen = 2;
       in this case the session will take from start the fully available screen size.

Notice: if no one of these points above (W.reconnectonresize = true; or W.full_screen = 2;) is effective then the full screen button will be deactivated. 


  Smartfit setting, only effective if server doesn't support on-the-fly-resizing or was preset to fullscreen (W.full_screen = 2;)

    1. by deafult www\software\html5\settings.js -> W.smartfit = true; is enabled. (or * = 1)
        in this case if RDP session area overflows browser area the RDP area will be squeezed to fit browser area.

    2. or configure/edit www\software\html5\settings.js -> W.smartfit = false; to disable it. (or * = 0)
        in this case if RDP area overflows browser area then the browser tab will automatically display scroll bars.

    3. smartfit set to * = true or * = 1 squeezes the RDP area by underflowing but if you set it to * = 2 then
        additionally it will stretch by overflowing.


  Full screen enforced with W.full_screen = 2; or W.full_screen = 1; 

   1. by default when using enforced full screen mode any click inside working area will switch automatically to full screen.
       to disable it edit settings.js > W.allowOnclickFullScreen = false;


IMPORTANT NOTICES
  A: Escape 
button(ESC) can neither be prevented nor it can be reassigned to another button(s), it is browsers native 
       behavior to not listen to Escape button in full screen mode and to leave full screen mode instead for security reasons.

  B: 
Entering full screen mode is privileged event in browsers therefore such actions have to be performed 
       only by hardware initiated events like mouse click and is purely browsers native limitation to increase security.
       
That is the main reason why it is technically not possible to reenter full screen mode after exiting it on Escape button. 

  C: 
There is no implementation of full screen mode on mobile browsers due very poor and non consistent support 
       from mobile browsers side.

  D: 
Mac Safari fullscreen option is disabled by default in settings.js > W.macSafariFullDisable = true; The reason 
       for this limitation, Safari does not support keyboard events while in fullscreen mode so the switching to fullscreen 
       on Safari Mac doesn't make any sense. This limitation was created by Apple due some strange way of security 
       measurements and so it can't be workarounded.