]> git.neil.brown.name Git - edlib.git/commitdiff
call editor:activate-display from the display code.
authorNeilBrown <neil@brown.name>
Wed, 28 Jun 2023 09:22:49 +0000 (19:22 +1000)
committerNeilBrown <neil@brown.name>
Wed, 28 Jun 2023 21:03:47 +0000 (07:03 +1000)
Any command that creates a display pane now also calls
editor:activate-display and returns the result.
That means other code what wants a display doesn't need to know about
activating the display.

Signed-off-by: NeilBrown <neil@brown.name>
display-ncurses.c
display-x11-xcb.c
edlib.c
python/display-pygtk.py
python/lib-server.py

index 77df7fe95c080cd8e87d1c096bfea72bd9d1df7b..e3162453c1584f99f5d552be983ef9e92335ec28 100644 (file)
@@ -1803,6 +1803,8 @@ DEF_CMD(display_ncurses)
                term = "xterm-256color";
 
        p = ncurses_init(ci->focus, tty, term);
+       if (p)
+               p = call_ret(pane, "editor:activate-display", p);
        if (p)
                return comm_call(ci->comm2, "callback:display", p);
 
index b0c82da754efffacfff16434668d476da127db39..6248ab5fc045b575d37ed4d88f3e4fdd6c5c4d56 100644 (file)
@@ -1902,6 +1902,7 @@ static struct pane *xcb_display_init(const char *d safe,
        attr_set_str(&p->attrs, "scale:M", scale);
        xd->last_event = time(NULL);
        call("editor:request:all-displays", p);
+       p = call_ret(pane, "editor:activate-display", p);
        return p;
 abort:
        kbd_free(xd);
@@ -1943,8 +1944,6 @@ DEF_CMD(xcb_new_display)
        if (!d)
                return Enoarg;
        p = xcb_display_init(d, disp_auth, ci->focus);
-       if (p)
-               p = call_ret(pane, "editor:activate-display", p);
        if (p)
                home_call_ret(pane, ci->focus, "doc:attach-view", p, 1);
        if (p)
diff --git a/edlib.c b/edlib.c
index de4cbe4adaf42998c45db92e3731f47157ac53cc..be6b596b703316d38b006823240b99c5451b41d4 100644 (file)
--- a/edlib.c
+++ b/edlib.c
@@ -107,8 +107,6 @@ int main(int argc, char *argv[])
 
                p = call_ret(pane, "attach-display-ncurses", ed,
                             0, NULL, "-", 0, NULL, TERM);
-               if (p)
-                       p = call_ret(pane, "editor:activate-display", p);
                if (p) {
                        char *e;
                        e = getenv("SSH_CONNECTION");
@@ -134,8 +132,6 @@ int main(int argc, char *argv[])
        if (gtk) {
                p = call_ret(pane, "attach-display-gtk",
                             ed, 0, NULL, getenv("DISPLAY"));
-               if (p)
-                       p = call_ret(pane, "editor:activate-display", p);
                if (p)
                        p = home_call_ret(pane, doc, "doc:attach-view",
                                          p, 1);
@@ -147,8 +143,6 @@ int main(int argc, char *argv[])
                p = call_ret(pane, "attach-display-x11",
                             ed, 0, NULL, getenv("DISPLAY"),
                             0, NULL, getenv("XAUTHORITY"));
-               if (p)
-                       p = call_ret(pane, "editor:activate-display", p);
                if (p)
                        p = home_call_ret(pane, doc, "doc:attach-view",
                                          p, 1);
index ae5a4c7413e7e1f43027737e5101d092f98b1456..efa699f49e7504e4efb114091a1bf001dcfb7edc 100644 (file)
@@ -747,7 +747,8 @@ def new_display(key, focus, comm2, str1, **a):
         s.set_long_property("Gtk-xft-dpi",sc*Pango.SCALE, "code")
 
     disp = EdDisplay(focus, str1)
-    comm2('callback', disp)
+    p = disp.call("editor:activate-display", ret='pane')
+    comm2('callback', p)
     return 1
 
 def new_display2(key, focus, **a):
index 84b2eff16564758ab5e44d606957df09398f12ca..f1ef4008e19ad1f3c1868f47f1bf9515417bfa66 100755 (executable)
@@ -145,7 +145,7 @@ try:
                     p = edlib.editor
                     p = p.call("attach-display-ncurses", path, env['TERM'],
                                ret='pane')
-                    self.term = p.call("editor:activate-display", ret='pane')
+                    self.term = p
                     for v in env:
                         self.term.call("window:set:", env[v], v)
                     self.disp = self.term