https://bugs.gentoo.org/928981
--- a/popup.c	2026-04-10 18:35:15.076276936 -0000
+++ b/popup.c	2026-04-10 18:38:02.446223540 -0000
@@ -156,7 +156,7 @@
 	assert(popup_form != NULL && win_form != NULL);
 	assert(set_form_win(popup_form, win_form) == E_OK);
 
-	int diff_rows = popup_form->cols - win_form->_maxx-2;
+	int diff_rows = popup_form->cols - getmaxx(win_form)-2;
 
 	/*
 	 * There isn't enough rows for the form so we resize win_body and
@@ -165,11 +165,11 @@
 	 * of them).
 	 */
 	if (diff_rows > 0) {
-		wresize(win_body, win_body->_maxy, win_body->_maxx + diff_rows);
-		wresize(win_form, win_form->_maxy, win_form->_maxx - 2 + diff_rows);
+		wresize(win_body, getmaxy(win_body), getmaxx(win_body) + diff_rows);
+		wresize(win_form, getmaxy(win_form), getmaxx(win_form) - 2 + diff_rows);
 	}
 
-	inner = derwin(win_form, win_form->_maxy-2, win_form->_maxx, 2, 0);
+	inner = derwin(win_form, getmaxy(win_form)-2, getmaxx(win_form), 2, 0);
 	assert(inner != NULL);
 	set_form_sub(popup_form, inner);
 
diff '--color=auto' -ru a/renderers.c b/renderers.c
--- a/renderers.c	2026-04-10 18:40:03.683720195 -0000
+++ b/renderers.c	2026-04-10 18:46:07.194854905 -0000
@@ -288,8 +288,8 @@
 	unpost_menu(main_menu);
 
 	for (i = 0; i < nb_items; i++) {
-		free((void *) main_items[i]->description.str);
-		free((void *) main_items[i]->name.str);
+		free((void *) item_description(main_items[i]));
+		free((void *) item_name(main_items[i]));
 
 		data = item_userptr(main_items[i]);
 		free((void *) data->dbus_name);
