From acc0bffc446abdbb27455127a4e496b7ba09d26d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Sun, 7 May 2023 04:15:53 -0400 Subject: [PATCH] Fixup vstat after bitmap_drv_init_mode() Now that vstat is what was last drawn on the screen we need to save/restore the width/height around calls to bitmap_drv_init_mode(). --- src/conio/x_events.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/conio/x_events.c b/src/conio/x_events.c index 9cb37ca413..d199b0ec2b 100644 --- a/src/conio/x_events.c +++ b/src/conio/x_events.c @@ -494,6 +494,7 @@ static void resize_window() static void init_mode_internal(int mode) { int mw, mh; + int ow, oh; x11_get_maxsize(&mw, &mh); pthread_mutex_lock(&vstatlock); @@ -501,8 +502,15 @@ static void init_mode_internal(int mode) release_buffer(last); last = NULL; } + ow = vstat.winwidth; + oh = vstat.winheight; bitmap_drv_init_mode(mode, NULL, NULL, mw, mh); + x_cvstat = vstat; + vstat.winwidth = ow; + vstat.winheight = oh; + pthread_mutex_unlock(&vstatlock); resize_window(); + pthread_mutex_lock(&vstatlock); x_cvstat = vstat; pthread_mutex_unlock(&vstatlock); resize_xim(); @@ -557,6 +565,7 @@ static int video_init() bitmap_drv_init(x11_drawrect, x11_flush); pthread_mutex_lock(&vstatlock); bitmap_drv_init_mode(vstat.mode, NULL, NULL, 0, 0); + x_cvstat = vstat; pthread_mutex_unlock(&vstatlock); init_mode_internal(x_cvstat.mode); -- GitLab