From: NeilBrown Date: Wed, 28 Jun 2023 09:11:43 +0000 (+1000) Subject: server: don't hold reference to the display pane. X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=1d5ec97f24d67260cd7b616fdf85ac18111be2b1;p=edlib.git server: don't hold reference to the display pane. The display pane will soon not be available as creation a display will transparently stack various things on top of it. So use "Display:close" instead of .close() and just hold the top level. .term and .disp are often the same now. I wonder if we need both. Signed-off-by: NeilBrown --- diff --git a/DOC/TODO.md b/DOC/TODO.md index 08a20033..41e08a6d 100644 --- a/DOC/TODO.md +++ b/DOC/TODO.md @@ -177,6 +177,7 @@ Module features ### lib-server - [ ] ctrl-z in elc doesn't ask edlib to release the terminal +- [ ] do we need both .term and .disp? When are they different? ### lib-x11selection-xcb diff --git a/python/lib-server.py b/python/lib-server.py index bb8d14ce..84b2eff1 100755 --- a/python/lib-server.py +++ b/python/lib-server.py @@ -37,7 +37,7 @@ try: if not msg : if self.disp: - self.disp.close() + self.disp.call("Display:close") if self.sock: self.sock.close() self.sock = None @@ -134,7 +134,7 @@ try: arg, env['XAUTHORITY'], ret='pane') if p: for v in env: - p[v] = env[v] + p.call("window:set:", env[v], v) p.call("Window:bury") self.term = p @@ -148,7 +148,7 @@ try: self.term = p.call("editor:activate-display", ret='pane') for v in env: self.term.call("window:set:", env[v], v) - self.disp = p + self.disp = self.term self.add_notify(self.disp, "Notify:Close") self.sock.send(b"OK") return 1 @@ -212,7 +212,7 @@ try: self.sock.close() self.sock = None if self.disp: - self.disp.close() + self.disp.call("Display:close") self.disp = None is_client = False