From 4fd848c9de8c2e6a22ebb78a41561ef5ce6bb649 Mon Sep 17 00:00:00 2001 From: Arjan Molenaar Date: Sat, 16 Mar 2024 17:22:21 +0100 Subject: [PATCH] macos: Retrieve NSEvents based on event properties We cannot depend on the exact event, since some events (e.g. for popups) are rewritten. Therefore we need to determine the NSEvent based on heuristics. The usual suspects are event type, device and timestamp. This allows us to fix IMContext for popups. --- gdk/macos/gdkmacosdisplay.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gdk/macos/gdkmacosdisplay.c b/gdk/macos/gdkmacosdisplay.c index 8440772fb5..c190ae88cd 100644 --- a/gdk/macos/gdkmacosdisplay.c +++ b/gdk/macos/gdkmacosdisplay.c @@ -998,7 +998,9 @@ _gdk_macos_display_get_nsevent (GdkEvent *event) { const GdkToNSEventMap *map = iter->data; - if (map->gdk_event == event) + if (map->gdk_event->event_type == event->event_type && + map->gdk_event->device == event->device && + map->gdk_event->time == event->time) return map->nsevent; }