* TBLR - 0, 1, or 2 can be given for center, side, or corner
* M - multi line, else one line
* 1234 - how many quarters of width to use.(default 2);
+ * r - allow recursive popup
*/
struct pane *root, *p;
struct popup_info *ppi = malloc(sizeof(*ppi));
if (!style)
style = "D3";
+ if (!strchr(style, 'r') &&
+ pane_attr_get(ci->focus, "Popup") != NULL)
+ /* No recusive popups without permission */
+ return 0;
+
if (strchr(style, 'D')) {
int x = 0, y = 0;
pane_to_root(ci->focus, &x, &y, &z, NULL, NULL);
border[j++] = "TLBR"[i];
}
border[j] = 0;
+ attr_set_str(&ppi->popup->attrs, "Popup", "true", -1);
attr_set_str(&ppi->popup->attrs, "borders", border, -1);
attr_set_str(&ppi->popup->attrs, "render-wrap", "no", -1);
}
docp = doc_open(ed, fd, d);
close(fd);
- pop = pane_attach(ci->focus, "popup", docp, "DM1");
+ pop = pane_attach(ci->focus, "popup", docp, "DM1r");
+ if (!pop)
+ return -1;
par = pane_final_child(pop);
attr_set_str(&par->attrs, "line-format", "%+name%suffix", -1);