From a939b57c7b4da5171d92de93f1d837bcef842765 Mon Sep 17 00:00:00 2001 From: Alastair Poole Date: Thu, 21 Jun 2018 13:34:20 +0100 Subject: [PATCH] ecore_cocoa: fix ECORE_EVENT_KEY_DOWN/UP on MacOS. Fixing issue with modifier keys on MacOS. These events were missing window information. Tested with Fyne.io. Window ID and keyname are valid. See: http://bogosys.org/images/fyne_OSX.png. Thanks zmike for initial investigation. @fix T6944 --- src/lib/ecore_cocoa/ecore_cocoa.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/lib/ecore_cocoa/ecore_cocoa.m b/src/lib/ecore_cocoa/ecore_cocoa.m index 83a7e26876..cfd56d397a 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa.m +++ b/src/lib/ecore_cocoa/ecore_cocoa.m @@ -254,6 +254,7 @@ _ecore_cocoa_feed_events(void *anEvent) case NSEventTypeFlagsChanged: { NSUInteger flags = [event modifierFlags]; + EcoreCocoaWindow *window = (EcoreCocoaWindow *)[event window]; Ecore_Event_Key *evDown = NULL; Ecore_Event_Key *evUp = NULL; @@ -277,6 +278,8 @@ _ecore_cocoa_feed_events(void *anEvent) if (evDown->key) { + evDown->window = (Ecore_Window)window.ecore_window_data; + evDown->event_window = evDown->window; evDown->keyname = evDown->key; evDown->timestamp = time; evDown->string = NULL; @@ -311,6 +314,8 @@ _ecore_cocoa_feed_events(void *anEvent) if (evUp->key) { + evUp->window = (Ecore_Window)window.ecore_window_data; + evUp->event_window = evUp->window; evUp->keyname = evUp->key; evUp->timestamp = time; evUp->string = NULL;