d->name = nname;
}
-struct doc *doc_find(struct editor *ed, char *name)
+struct pane *doc_find(struct editor *ed, char *name)
{
struct pane *p;
list_for_each_entry(p, &ed->root.focus->children, siblings) {
struct doc *d = p->data;
if (strcmp(name, d->name) == 0)
- return d;
+ return p;
}
return NULL;
}
char *name, char *render);
struct pane *doc_attach(struct pane *parent, struct doc *d);
void doc_set_name(struct doc *d, char *name);
-struct doc *doc_find(struct editor *ed, char *name);
+struct pane *doc_find(struct editor *ed, char *name);
void doc_promote(struct doc *d);
int doc_destroy(struct doc *d);
DEF_CMD(emacs_finddoc)
{
struct pane *p, *par;
- struct doc *d;
struct cmd_info ci2 = {0};
if (strncmp(ci->key, "Doc Found", 9) != 0) {
ptp = pane_point(pane_final_child(p));
/* Want to work with the document pane */
p = container_of(ptp, struct pane, point);
- d = (*ptp)->doc;
if (strncmp(ci->key, "emCX4-", 6) == 0) {
attr_set_str(&p->attrs, "prefix",
"Find Document Other Window: ", -1);
attr_set_str(&p->attrs, "prefix", "Find Document: ", -1);
attr_set_str(&p->attrs, "done-key", "Doc Found", -1);
}
- doc_set_name(d, "Find Document");
+ doc_set_name((*ptp)->doc, "Find Document");
ci2.key = "local-set-key";
ci2.focus = p;
ci2.str = "emacs:doc-complete";
par = p->parent;
/* par is the tile */
- d = doc_find(pane2ed(par), ci->str);
- if (!d)
+ p = doc_find(pane2ed(par), ci->str);
+ if (!p)
return 1;
if (par->focus)
pane_close(par->focus);
- p = pane_attach(par, "view", d->home, NULL);
+ p = pane_attach(par, "view", p, NULL);
if (!p)
return 0;
render_attach(NULL, p);