From 57fe4f59b3437fe37741a1c5ca6c5bdbd8c5068b Mon Sep 17 00:00:00 2001 From: koekeishiya Date: Thu, 22 Feb 2024 18:49:09 +0100 Subject: [PATCH] #1801 fix weird segfault with cached mouse event --- src/mouse_handler.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mouse_handler.c b/src/mouse_handler.c index 34880acf..ebe29711 100644 --- a/src/mouse_handler.c +++ b/src/mouse_handler.c @@ -44,8 +44,8 @@ static MOUSE_HANDLER(mouse_handler) uint8_t mod = mouse_mod_from_cgflags(CGEventGetFlags(event)); event_loop_post(&g_event_loop, MOUSE_DOWN, (void *) CFRetain(event), mod); - mouse_state->consume_mouse_click = mod == mouse_state->modifier; - if (mouse_state->consume_mouse_click) { + if (mod == mouse_state->modifier) { + mouse_state->consume_mouse_click = true; mouse_state->consumed_event = (CGEventRef) CFRetain(event); return NULL; } @@ -72,8 +72,9 @@ static MOUSE_HANDLER(mouse_handler) CGEventTapPostEvent(proxy, event); } - CFRelease(mouse_state->consumed_event); mouse_state->drag_detected = false; + mouse_state->consume_mouse_click = false; + CFRelease(mouse_state->consumed_event); return NULL; } } break;