[X2Go-Commits] [nx-libs] 234/429: Screen.c: Fix fullscreen (onescreen) at startup

git-admin at x2go.org git-admin at x2go.org
Mon Oct 18 09:36:41 CEST 2021


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit f92e1a5a298c505e64f32c3da62ca4ddcd3df990
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Sat Jan 30 16:19:21 2021 +0100

    Screen.c: Fix fullscreen (onescreen) at startup
    
    Fixes ArcticaProject/nx-libs#991
---
 nx-X11/programs/Xserver/hw/nxagent/Screen.c | 33 +++++++++++++++++++++++++++--
 1 file changed, 31 insertions(+), 2 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index a6b312aaa..c51302e6d 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -322,6 +322,12 @@ Bool nxagentIsParentOf(Display *d, XlibWindow possible_parent, XlibWindow candid
  */
 void nxagentMinimizeFromFullScreen(ScreenPtr pScreen)
 {
+  if (nxagentOption(Fullscreen) && !nxagentOption(AllScreens))
+  {
+    nxagentSwitchFullscreen(pScreen, False);
+    return;
+  }
+
   XUnmapWindow(nxagentDisplay, nxagentFullscreenWindow);
   XIconifyWindow(nxagentDisplay, nxagentIconWindow,
                        DefaultScreen(nxagentDisplay));
@@ -337,6 +343,12 @@ void nxagentMinimizeFromFullScreen(ScreenPtr pScreen)
  */
 void nxagentMaximizeToFullScreen(ScreenPtr pScreen)
 {
+  if (nxagentOption(Fullscreen) && !nxagentOption(AllScreens))
+  {
+    nxagentSwitchFullscreen(pScreen, True);
+    return;
+  }
+
 /*
   XUnmapWindow(nxagentDisplay, nxagentIconWindow);
 */
@@ -992,8 +1004,25 @@ Bool nxagentOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
     nxagentChangeOption(X, 0);
     nxagentChangeOption(Y, 0);
 
-    nxagentChangeOption(Width, w);
-    nxagentChangeOption(Height, h);
+    /*
+     * Fullscreen will use the window manager on the remote X
+     * server. We need to size the window appropriately because the
+     * window manager stores the size and restores it when fullscreen
+     * mode is left. In AllScreens mode the window manager is
+     * instructed to not draw any window decorations. Here we need the
+     * full width to cover the whole screen.
+     */
+
+    if (nxagentOption(AllScreens))
+    {
+      nxagentChangeOption(Width, w);
+      nxagentChangeOption(Height, h);
+    }
+    else
+    {
+      nxagentChangeOption(Width, w * 3 / 4);
+      nxagentChangeOption(Height, h * 3 / 4);
+    }
 
     /* first time screen initialization or resize during reconnect */
     if (!nxagentReconnectTrap || nxagentResizeDesktopAtStartup)

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list