]> git.neil.brown.name Git - edlib.git/commitdiff
use new doc_attach_view for attaching "view"
authorNeilBrown <neil@brown.name>
Wed, 25 Nov 2015 05:35:52 +0000 (16:35 +1100)
committerNeilBrown <neil@brown.name>
Wed, 25 Nov 2015 05:41:15 +0000 (16:41 +1100)
This is a common task and it is good to centralize it.

Signed-off-by: NeilBrown <neil@brown.name>
core-doc.c
lib-popup.c
mode-emacs.c

index 69657863b0382960d5a400d084fa0cb2be5136b1..0a43746e49105a930d51f2a96f78fd85044fde34 100644 (file)
@@ -211,20 +211,21 @@ struct pane *doc_from_text(struct pane *parent, char *name, char *text)
        bool first = 1;
        struct pane *p;
        struct point **ptp;
+       struct doc *d;
 
        p = doc_new(pane2ed(parent), "text");
        if (!p)
                return NULL;
-       p = pane_attach(parent, "view", p, NULL);
+       d = p->data;
+       doc_set_name(d, name);
+       p = doc_attach_view(parent, p, NULL);
        if (!p) {
                doc_destroy(p->data);
                return p;
        }
-       ptp = pane_point(p);
-       doc_set_name((*ptp)->doc, name);
        doc_replace(p, NULL, text, &first);
+       ptp = pane_point(p);
        point_reset(*ptp);
-       render_attach(NULL, p);
        return p;
 }
 
@@ -407,9 +408,8 @@ DEF_CMD(docs_open)
        }
        if (p)
                pane_close(p);
-       p = pane_attach(par, "view", dp, NULL);
+       p = doc_attach_view(par, dp, renderer);
        if (p) {
-               render_attach(renderer, p);
                pane_focus(p);
                return 1;
        } else {
index 9a5cbd2d1dcb3c57bd6b1c7eec1ba3cb8c6f2fae..096a0234c8d248f501add2a7281f9c1fd434ffbb 100644 (file)
@@ -167,17 +167,16 @@ DEF_CMD(popup_attach)
        attr_set_str(&ppi->popup->attrs, "render-wrap", "no", -1);
 
        if (ci->home) {
-               p = pane_attach(ppi->popup, "view", ci->home, NULL);
+               p = doc_attach_view(ppi->popup, ci->home, NULL);
        } else {
                struct pane *dp;
                struct doc *d;
                dp = doc_new(pane2ed(root), "text");
                d = dp->data;
                doc_set_name(d, "*popup*");
-               p = pane_attach(ppi->popup, "view", dp, NULL);
                ppi->doc = dp;
+               p = doc_attach_view(ppi->popup, dp, NULL);
        }
-       render_attach(NULL, p);
        pane_focus(p);
        ci2.key = "local-set-key";
        ci2.focus = p;
index 6008ce5bc393fa8a27f9498f4c5b9214f076625c..3e46d7e24c776569f1161243f4cf8d1e80eec472 100644 (file)
@@ -460,11 +460,8 @@ DEF_CMD(emacs_finddoc)
                return 1;
        if (par->focus)
                pane_close(par->focus);
-       p = pane_attach(par, "view", p, NULL);
-       if (!p)
-               return 0;
-       render_attach(NULL, p);
-       return 1;
+       p = doc_attach_view(par, p, NULL);
+       return !!p;
 }
 
 DEF_CMD(emacs_doc_complete)
@@ -531,12 +528,8 @@ DEF_CMD(emacs_viewdocs)
        if (!d)
                return 1;
        pane_close(p);
-       p = pane_attach(par, "view", d->home, NULL);
-       if (!p) {
-               return 0;
-       }
-       render_attach(NULL, p);
-       return 1;
+       p = doc_attach_view(par, d->home, NULL);
+       return !!p;
 }
 
 DEF_CMD(emacs_meta)