Fixed a bug with resize where it would not cleanly redraw for the new terminal window

This commit is contained in:
2026-03-28 07:12:50 +05:30
parent 640ea1b267
commit 428d40b0ef
2 changed files with 26 additions and 2 deletions
+20
View File
@@ -56,6 +56,26 @@ class MenuBar {
}
}
void resize(WINDOW *new_win)
{
delwin(menuwin);
this->win = new_win;
int yMax,xMax,yBeg,xBeg;
getmaxyx(win,yMax,xMax);
getbegyx(win,yBeg,xBeg);
menuwin = newwin(yMax-2,xMax-2,yBeg+1,xBeg+1);
int current_pos = 2;
for (int i = 0; i < num_menus; i++)
{
menus[i].start_x = current_pos;
current_pos += menus[i].text.length() + 1;
}
}
void reset()
{
for (int i = 0; i < num_menus; i++)
+6 -2
View File
@@ -20,7 +20,7 @@ int main(int argc, char **argv){
int yMax,xMax;
getmaxyx(stdscr,yMax,xMax);
WINDOW *win = newwin(9*(yMax)/10,9*(xMax)/10,1,1);
WINDOW *win = newwin(yMax-1,xMax-1,1,1);
box(win,0,0);
string menu1[] = {"New","Open","Save","Exit"};
@@ -46,11 +46,15 @@ int main(int argc, char **argv){
}
else if(ch == KEY_RESIZE)
{
clear();
refresh();
delwin(win);
getmaxyx(stdscr,yMax,xMax);
win = newwin(9*(yMax)/10,9*(xMax)/10,1,1);
win = newwin(yMax-1,xMax-1,1,1);
box(win,0,0);
menubar.resize(win);
menubar.draw();
wrefresh(win);
}
}