Byeongsik Jeon (@bsjeon) commented about dlls/winemac.drv/cocoa_window.m:
window.commandDone = FALSE; ret = [[[window contentView] inputContext] handleEvent:event] && !window.commandDone; }
else if (window && !pressed)
ret = TRUE;
Here, is there a reason why ret is TRUE?
ImeProcessKey should return FALSE if ime does not handle key events. To avoid unnecessary code execution and waiting, my opinion is that the fix should be made earlier in macdrv_ImeProcessKey().