[X2Go-Commits] [nx-libs] 44/51: Screen.c: improve readability of size calculations

git-admin at x2go.org git-admin at x2go.org
Fri Feb 8 05:40:14 CET 2019


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

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

commit 43d3b655d4f158203b3e39025a3cafc314ba9ad7
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Sun Jan 13 23:46:49 2019 +0100

    Screen.c: improve readability of size calculations
    
    ... by using some short named variables and the min() macro.
    
    No change in behaviour.
---
 nx-X11/programs/Xserver/hw/nxagent/Screen.c | 122 +++++++++++++---------------
 1 file changed, 57 insertions(+), 65 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 1af6215..cfe0fd9 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -885,8 +885,7 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
   #endif
 
   /*
-   * Forced geometry parameter
-   * to user geometry.
+   * Forced geometry parameter to user geometry.
    */
 
   if (nxagentResizeDesktopAtStartup)
@@ -903,32 +902,26 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
 
     if (nxagentUserGeometry.flag & WidthValue)
     {
-      nxagentChangeOption(Width, nxagentUserGeometry.Width);
-      nxagentChangeOption(RootWidth, nxagentUserGeometry.Width);
+      int uw = nxagentUserGeometry.Width;
 
-      if (nxagentOption(SavedWidth) > nxagentUserGeometry.Width)
-      {
-        nxagentChangeOption(SavedWidth, nxagentUserGeometry.Width);
-      }
+      nxagentChangeOption(Width, uw);
+      nxagentChangeOption(RootWidth, uw);
+      nxagentChangeOption(SavedWidth, min(nxagentOption(SavedWidth), uw));
     }
 
     if (nxagentUserGeometry.flag & HeightValue)
     {
-      nxagentChangeOption(Height, nxagentUserGeometry.Height);
-      nxagentChangeOption(RootHeight, nxagentUserGeometry.Height);
+      int uh = nxagentUserGeometry.Height;
 
-      if (nxagentOption(SavedHeight) > nxagentUserGeometry.Height)
-      {
-        nxagentChangeOption(SavedHeight, nxagentUserGeometry.Height);
-      }
+      nxagentChangeOption(Height, uh);
+      nxagentChangeOption(RootHeight, uh);
+      nxagentChangeOption(SavedHeight, min(nxagentOption(SavedHeight), uh));
     }
   }
 
   /*
-   * This is first time the
-   * screen is initialized.
-   * Filling the geometry parameter
-   * from user geometry.
+   * This is first time the screen is initialized.
+   * Filling the geometry parameter from user geometry.
    */
 
   if (nxagentReconnectTrap == False)
@@ -971,10 +964,8 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
   }
 
   /*
-   * Determine the size of the root window.
-   * It is the maximum size of the screen
-   * if we are either in rootless or in
-   * fullscreen mode.
+   * Determine the size of the root window.  It is the maximum size of
+   * the screen if we are either in rootless or in fullscreen mode.
    */
 
   if (nxagentOption(Rootless) == False && !nxagentWMIsRunning)
@@ -1013,46 +1004,58 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
 
   nxagentChangeOption(BorderWidth, 0);
 
+  /* get the screen size of the real X server once */
+  int w = WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay));
+  int h = HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay));
+
   if (nxagentOption(Fullscreen))
   {
     nxagentChangeOption(X, 0);
     nxagentChangeOption(Y, 0);
 
-    nxagentChangeOption(Width, WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
-    nxagentChangeOption(Height, HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
-
+    nxagentChangeOption(Width, w);
+    nxagentChangeOption(Height, h);
 
+    /* first time screen initialization or resize during reconnect */
     if (nxagentReconnectTrap == False || nxagentResizeDesktopAtStartup)
     {
-      nxagentChangeOption(RootWidth, WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
-      nxagentChangeOption(RootHeight, HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
+      nxagentChangeOption(RootWidth, w);
+      nxagentChangeOption(RootHeight, h);
 
-      if (nxagentOption(RootWidth) > WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)))
+      if (nxagentOption(RootWidth) > w)
       {
-        nxagentChangeOption(SavedWidth, WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) * 3 / 4);
+        nxagentChangeOption(SavedWidth, w * 3 / 4);
       }
       else
       {
         nxagentChangeOption(SavedWidth, nxagentOption(RootWidth));
       }
 
-      if (nxagentOption(RootHeight) > HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)))
+      if (nxagentOption(RootHeight) > h)
       {
-        nxagentChangeOption(SavedHeight, HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) * 3 / 4);
+        nxagentChangeOption(SavedHeight, h * 3 / 4);
       }
       else
       {
         nxagentChangeOption(SavedHeight, nxagentOption(RootHeight));
       }
-    }
 
-    nxagentChangeOption(RootX, ((WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) -
-                            nxagentOption(RootWidth)) / 2));
-    nxagentChangeOption(RootY, ((HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) -
-                            nxagentOption(RootHeight)) / 2));
+      nxagentChangeOption(RootX, 0);
+      nxagentChangeOption(RootY, 0);
+    }
+    else
+    {
+      /* center */
+      nxagentChangeOption(RootX, (w - nxagentOption(RootWidth)) / 2);
+      nxagentChangeOption(RootY, (h - nxagentOption(RootHeight)) / 2);
+    }
   }
   else
   {
+    /*
+     * screen is initialized for the first time
+     */
+
     if (nxagentReconnectTrap == False)
     {
       nxagentChangeOption(RootX, 0);
@@ -1063,53 +1066,44 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
     }
 
     /*
-     * Be sure that the agent window won't be bigger
+     * Ensure that the agent window won't be bigger
      * than the root window.
      */
 
-    if (nxagentOption(Width) > nxagentOption(RootWidth))
-    {
-      nxagentChangeOption(Width, nxagentOption(RootWidth));
-    }
-
-    if (nxagentOption(Height) > nxagentOption(RootHeight))
-    {
-      nxagentChangeOption(Height, nxagentOption(RootHeight));
-    }
+    nxagentChangeOption(Width, min(nxagentOption(Width), nxagentOption(RootWidth)));
+    nxagentChangeOption(Height, min(nxagentOption(Height), nxagentOption(RootHeight)));
 
     /*
      * Be sure that the agent window won't be bigger
      * than the X server root window.
      */
 
-    if (nxagentOption(Width) > WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)))
+    if (nxagentOption(Width) > w)
     {
-      nxagentChangeOption(Width, WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) * 3 / 4);
+      nxagentChangeOption(Width, w * 3 / 4);
     }
 
-    if (nxagentOption(Height) > HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)))
+    if (nxagentOption(Height) > h)
     {
-      nxagentChangeOption(Height, HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) * 3 / 4);
+      nxagentChangeOption(Height, h * 3 / 4);
     }
 
     /*
-     * Forcing the agent window geometry to be equal to
-     * the root window geometry the first time the
-     * screen is initialized if the geometry hasn't been
-     * esplicitly set in the option file and if
-     * the root window isn't bigger than the X server
-     * root window..
+     * Forcing the agent window geometry to be equal to the root
+     * window geometry the first time the screen is initialized if the
+     * geometry hasn't been explicitly set in the option file and if
+     * the root window isn't bigger than the X server root window..
      */
 
     if (nxagentReconnectTrap == False)
     {
-      if ((nxagentOption(RootWidth) < WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay))) &&
+      if ((nxagentOption(RootWidth) < w) &&
               !(nxagentUserGeometry.flag & WidthValue))
       {
         nxagentChangeOption(Width, nxagentOption(RootWidth));
       }
 
-      if ((nxagentOption(RootHeight) < HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay))) &&
+      if ((nxagentOption(RootHeight) < h) &&
               !(nxagentUserGeometry.flag & HeightValue))
       {
         nxagentChangeOption(Height, nxagentOption(RootHeight));
@@ -1118,11 +1112,9 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
 
     if (resetAgentPosition)
     {
-      nxagentChangeOption(X, ((WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) -
-                              nxagentOption(Width)) / 2));
-
-      nxagentChangeOption(Y, ((HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)) -
-                              nxagentOption(Height)) / 2));
+      /* center */
+      nxagentChangeOption(X, (w - nxagentOption(Width)) / 2);
+      nxagentChangeOption(Y, (h - nxagentOption(Height)) / 2);
     }
 
     nxagentChangeOption(SavedWidth, nxagentOption(RootWidth));
@@ -1131,8 +1123,8 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
 
   if (nxagentOption(Rootless))
   {
-    nxagentChangeOption(RootWidth, WidthOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
-    nxagentChangeOption(RootHeight, HeightOfScreen(DefaultScreenOfDisplay(nxagentDisplay)));
+    nxagentChangeOption(RootWidth, w);
+    nxagentChangeOption(RootHeight, h);
   }
 
   nxagentChangeOption(SavedRootWidth, nxagentOption(RootWidth));

--
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