[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#922220: nxagent: rootless session must ignore -geometry option



Package: nxagent
Severity: important
Tags: patch
Version: 3.5.99.18-1

Recently, one of our upstream devs fixed an issue in nxagent. With the fix, rootless sessions now ignore the -geometry option after session resumption.

This solves all sorts of weird behaviour and unexpected outcomes (like GUI windows not accessible anymore after session resumption).

Patch is attached.

Mike
--

DAS-NETZWERKTEAM
c\o Technik- und Ökologiezentrum Eckernförde
Mike Gabriel, Marienthaler str. 17, 24340 Eckernförde
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

>From 34e4291de2c261f9dd047a7e18cf46eeaf84662a Mon Sep 17 00:00:00 2001
From: Ulrich Sibiller <uli42@gmx.de>
Date: Thu, 7 Feb 2019 23:04:23 +0100
Subject: [PATCH] Screen.c: simplify and fix handling of rootless mode

Fixes: ArcticaProject/nx-libs#765
---
 nx-X11/programs/Xserver/hw/nxagent/Screen.c | 40 +++++++++------------
 1 file changed, 17 insertions(+), 23 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 19057dfe12..103cd1dbf0 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -1050,8 +1050,22 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
       nxagentChangeOption(RootY, (h - nxagentOption(RootHeight)) / 2);
     }
   }
-  else
+  else if (nxagentOption(Rootless))
   {
+    nxagentChangeOption(X, 0);
+    nxagentChangeOption(Y, 0);
+
+    nxagentChangeOption(RootX, 0);
+    nxagentChangeOption(RootY, 0);
+
+    nxagentChangeOption(RootWidth, w);
+    nxagentChangeOption(RootHeight, h);
+
+    nxagentChangeOption(Width, w);
+    nxagentChangeOption(Height, h);
+ }
+ else /* window mode */
+ {
     /*
      * screen is initialized for the first time
      */
@@ -1080,26 +1094,12 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
 
     if (nxagentOption(Width) > w)
     {
-      if (nxagentOption(Rootless))
-      {
-        nxagentChangeOption(Width, w);
-      }
-      else
-      {
-        nxagentChangeOption(Width, w * 3 / 4);
-      }
+      nxagentChangeOption(Width, w * 3 / 4);
     }
 
     if (nxagentOption(Height) > h)
     {
-      if (nxagentOption(Rootless))
-      {
-        nxagentChangeOption(Height, h);
-      }
-      else
-      {
-        nxagentChangeOption(Height, h * 3 / 4);
-      }
+      nxagentChangeOption(Height, h * 3 / 4);
     }
 
     /*
@@ -1135,12 +1135,6 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
     nxagentChangeOption(SavedHeight, nxagentOption(RootHeight));
   }
 
-  if (nxagentOption(Rootless))
-  {
-    nxagentChangeOption(RootWidth, w);
-    nxagentChangeOption(RootHeight, h);
-  }
-
   nxagentChangeOption(SavedRootWidth, nxagentOption(RootWidth));
   nxagentChangeOption(SavedRootHeight, nxagentOption(RootHeight));
 

Attachment: pgpOuWPnYFLFA.pgp
Description: Digitale PGP-Signatur


Reply to: