On Mon Nov 3 08:59:03 2025 +0000, Marc-Aurel Zent wrote:
Hm what about something like
while (macdrv_copy_event_from_queue(thread_data->queue, im_set_text_mask, &event)) { macdrv_handle_event(event); macdrv_release_event(event); }
`NtUserMsgWaitForMultipleObjectsEx` is now more tightly coupled with `ProcessEvents` and wineserver message queue fd polling. There's side effects like notifying wineserver after all events have been processed that need to be taken into account and I don't think it's a good idea to try to extract only some of the logic out.
Either we can get rid of the IM_SET_TEXT event too in this case (which seems doable) or we need to call `NtUserMsgWaitForMultipleObjectsEx`.