diff --git a/src/conio/x_events.c b/src/conio/x_events.c index 9cb37ca413de66e9ba7c813b757c3823326e9ded..d199b0ec2b49d3314db8fb6d09bd994dcfc4f495 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);