From baa50758f6f98822db1e01eec3b8f0fc7577fdf5 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Thu, 22 May 2025 12:13:31 +0200 Subject: Fix the mouse click on resize window --- src/main/engine/ui/x11/ui.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'src/main/engine/ui/x11/ui.c') diff --git a/src/main/engine/ui/x11/ui.c b/src/main/engine/ui/x11/ui.c index b1086a9..2501f5c 100644 --- a/src/main/engine/ui/x11/ui.c +++ b/src/main/engine/ui/x11/ui.c @@ -38,7 +38,15 @@ void (*on_resize_event)(UIEventResize *); void (*on_mouse_press_event)(UIMouseButtonPressed *); void (*on_generic_event)(int); -void cleanup(void); +static void +cleanup(UI *ui) { + glXMakeCurrent(display, None, NULL); + glXDestroyContext(display, gl_context); + XDestroyWindow(display, window); + XCloseDisplay(display); + + free(ui); +} static Log *log = NULL; @@ -148,7 +156,7 @@ ui_on_expose(XEvent event) } static void -ui_on_resize(XEvent event) +ui_on_resize(UI *ui, XEvent event) { init_log(); @@ -161,6 +169,8 @@ ui_on_resize(XEvent event) } er->width = event.xconfigure.width; er->height = event.xconfigure.height; + ui->width = er->width; + ui->height = er->height; on_resize_event(er); } } @@ -244,7 +254,7 @@ ui_set_generic_listener(void (*generic_event)(int type)) } void -ui_loop(void) +ui_loop(UI *ui) { XEvent event; while (!close_window) { @@ -252,7 +262,7 @@ ui_loop(void) XNextEvent(display, &event); ui_on_generic_event(event); ui_on_expose(event); - ui_on_resize(event); + ui_on_resize(ui, event); ui_on_keypress(event); ui_on_mouse_press(event); ui_on_mouse_release(event); @@ -262,13 +272,5 @@ ui_loop(void) glXSwapBuffers(display, window); } - cleanup(); -} - -void -cleanup(void) { - glXMakeCurrent(display, None, NULL); - glXDestroyContext(display, gl_context); - XDestroyWindow(display, window); - XCloseDisplay(display); + cleanup(ui); } -- cgit v1.2.3