diff --git a/src/conio/bitmap_con.c b/src/conio/bitmap_con.c index fd8e5659516f5bf1b717882eb6325133f2bb2be4..2e180ec812f738d50b17648fba237d815523be79 100644 --- a/src/conio/bitmap_con.c +++ b/src/conio/bitmap_con.c @@ -1876,7 +1876,7 @@ int bitmap_drv_init_mode(int mode, int *width, int *height, int maxwidth, int ma ns = bs; while (ns < os) { mult++; - bitmap_get_scaled_win_size(mult, &w, &h, maxwidth, maxheight); + bitmap_get_scaled_win_size(mult, &w, &h, 0, 0); if ((maxwidth > 0) && (w > maxwidth)) { mult--; ns = ls; @@ -1902,6 +1902,7 @@ int bitmap_drv_init_mode(int mode, int *width, int *height, int maxwidth, int ma bitmap_get_scaled_win_size(mult, &w, &h, maxwidth, maxheight); vstat.winwidth = w; vstat.winheight = h; + vstat.scaling = mult; return(0); } diff --git a/src/conio/win32gdi.c b/src/conio/win32gdi.c index 7b5b5d216aa22fc158f7ca09af7c9b9494c61e7d..50b12a78440af594e3979ca0e139c64f77a97521 100644 --- a/src/conio/win32gdi.c +++ b/src/conio/win32gdi.c @@ -926,6 +926,7 @@ gdi_textmode(int mode) if (fullscreen) { vstat.winwidth = mw; vstat.winheight = mh; + vstat.scaling = bitmap_double_mult_inside(mw, mh); } gdi_setwinsize(vstat.winwidth, vstat.winheight); pthread_mutex_unlock(&vstatlock); diff --git a/src/conio/x_events.c b/src/conio/x_events.c index d9a51e8251188c2ecfa0a030c48a18fa26d47053..3c2bfe57a638ed9240c3ff551e495fdec7d391c1 100644 --- a/src/conio/x_events.c +++ b/src/conio/x_events.c @@ -1169,7 +1169,8 @@ static void resize_window() pthread_mutex_unlock(&vstatlock); return; } - resize = new_scaling != vstat.scaling; + bitmap_get_scaled_win_size(new_scaling, &width, &height, 0, 0); + resize = new_scaling != vstat.scaling || width != vstat.winwidth || height != vstat.winheight; x_cvstat.scaling = vstat.scaling; if (resize) x11.XResizeWindow(dpy, win, width, height); @@ -1195,7 +1196,6 @@ static void init_mode_internal(int mode) os = vstat.scaling; bitmap_drv_init_mode(mode, NULL, NULL, mw, mh); x_cvstat = vstat; - x_cvstat.scaling = bitmap_double_mult_inside(vstat.winwidth, vstat.winheight); vstat.winwidth = ow; vstat.winheight = oh; vstat.scaling = os;