diff --git a/src/conio/x_events.c b/src/conio/x_events.c index 7c84ffb2afb78942ba59246ac4dfaf3c3279d28c..1a4a79aa54cbece530de754710a6138d5183f101 100644 --- a/src/conio/x_events.c +++ b/src/conio/x_events.c @@ -857,11 +857,18 @@ static int x11_event(XEvent *ev) break; /* Graphics related events */ case ConfigureNotify: { + bool resize = false; + if (x11_window_xpos != ev->xconfigure.x || x11_window_ypos != ev->xconfigure.y) { x11_window_xpos=ev->xconfigure.x; x11_window_ypos=ev->xconfigure.y; } - handle_resize_event(ev->xconfigure.width, ev->xconfigure.height); + pthread_mutex_lock(&vstatlock); + if (ev->xconfigure.width != vstat.winwidth || ev->xconfigure.height != vstat.winheight) + resize = true; + pthread_mutex_unlock(&vstatlock); + if (resize) + handle_resize_event(ev->xconfigure.width, ev->xconfigure.height); break; } case NoExpose: