On Wed Apr 19 12:22:45 2023 +0000, Byeongsik Jeon wrote:
@bsjeon I believe that, with your comctl32 patch, the composition now
works as it should for the two sequences you described. I'm glad to see the WM_IME_ENDCOMPOSITION (x11drv_ime_set_result) fix included. Thank you. -- The following is not relevant to this MR. Example of typing '가나' in ibus-hangul: After applying this MR, 'XMODIFIERS=@im=ibus WINEDEBUG=xim wine notepad'. Here is the WINEDEBUG=xim trace result after removing merge_events() from process_events().
00d0:trace:xim:xic_preedit_start xic 0x7d5ebd30, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xic_preedit_draw xic 0x7d5ebd30, hwnd 0x1005e, arg 0x76f118 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 0, text L"\3131" <== 'ㄱ' 00d0:trace:xim:xic_preedit_draw xic 0x7d5ebd30, hwnd 0x1005e, arg 0x76f118 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text L"\ac00" <== '가' 00d0:trace:xim:xic_preedit_draw xic 0x7d5ebd30, hwnd 0x1005e, arg 0x76f118 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text L"\ac04" <== '간' 00d0:trace:xim:xic_preedit_draw xic 0x7d5ebd30, hwnd 0x1005e, arg 0x76f118 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text (null) 00d0:trace:xim:xic_preedit_done xic 0x7d5ebd30, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xim_set_result_string hwnd 0x1005e, str "\xea\xb0\x80" <== '가' 00d0:trace:xim:xic_create xim 0x7dc5b720, hwnd 0x10068/0 00d0:trace:xim:xic_preedit_start xic 0x7d5ebd30, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xic_preedit_draw xic 0x7d5ebd30, hwnd 0x1005e, arg 0x76de58 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 0, text L"\b098" <== '나' 00d0:trace:xim:xic_create created XIC 0x7d5ee0a0 00d0:fixme:imm:ime_ui_window_proc hwnd 00020070, himc 00010064, msg WM_IME_NOTIFY, wparam IMN_SETOPENSTATUS, lparam 0 stub!탸
And this is the result of the current xim trace to Wine.
00d0:trace:xim:xic_preedit_start xic 0x7d5f1300, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xic_preedit_draw xic 0x7d5f1300, hwnd 0x1005e, arg 0x76f088 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 0, text L"\3131" <== 'ㄱ' 00d0:trace:xim:xic_preedit_draw xic 0x7d5f1300, hwnd 0x1005e, arg 0x76f088 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text L"\ac00" <== '가' 00d0:trace:xim:xic_preedit_draw xic 0x7d5f1300, hwnd 0x1005e, arg 0x76f088 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text L"\ac04" <== '간' 00d0:trace:xim:xic_preedit_draw xic 0x7d5f1300, hwnd 0x1005e, arg 0x76f088 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 1, text (null) 00d0:trace:xim:xic_preedit_done xic 0x7d5f1300, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xic_preedit_start xic 0x7d5f1300, hwnd 0x1005e, arg (nil) 00d0:trace:xim:xic_preedit_draw xic 0x7d5f1300, hwnd 0x1005e, arg 0x76f088 00d0:trace:xim:xim_update_preedit_string hwnd 0x20070, offset 0, old_len 0, text L"\b098" <== '나' 00d0:trace:xim:xim_set_result_string hwnd 0x1005e, str "\xea\xb0\x80" <== '가'
You're aware of this issue, right?
I haven't looked at the merge event issue yet. I think I understand how it can be a problem but I will need to investigate it a bit.