On Tue Apr 8 17:12:58 2025 +0000, Ralf Habacker wrote:
> Is there still something to do here or can it be merged?
Yes, someone needs to come up with better a solution to the file deletion problem. I don't think this series is going to be accepted without one.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7650#note_100277
This will later allow for optimization by limiting the area we
consider to the region's bounding rectangle.
--
v2: gdiplus/tests: Test rounding of region rectangles.
gdiplus: Implement path to region conversion without gdi32.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7654
In Korean input, if ime is in the composition state, when non-printable key
(ENTER, TAB, etc.) are pressed, it returns a result_string and passes the
non-printable key to WinProc with the WM_IME_KEYDOWN message.
This can be seen in ‘imm32/test/imm32.c::test_ga_na_da()’.
In the current winemac.drv, if you select the “Korean 2-Set Keyboard” input
source and type ‘r-k-ENTER’, it only outputs the result string ‘0xAC00’.
WM_IME_KEYDOWN message generation does not exist.
At this point, the WINE_IME_POST_UPDATE call occurs, and macdrv_ImeProcessKey
returns FALSE. A FALSE return value means that the key was not consumed by ime,
and a WM_KEYDOWN message should be generated.
However, because an ime_update call occurred, ImeProcessKey should return TRUE,
and (wparam not modified) raw WM_KEYDOWN message should be generated via a
different path, so a WM_IME_KEYDOWN message is required.
This patch allows the macdrv_ImeProcessKey return value to be passed to
ImeToAsciiEx() to determine if a WM_IME_KEYDOWN message should be generated.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7767
In winemac.drv, Multiple ime update calls occur during ImeProcessKey.
These multiple ime update calls need to be properly merged into ‘data->update’.
However, currently win32u/imm.c::post_ime_update() only keeps the last ime
update call.
Valid rules are:
- The comp_str is discarded when the next ime update call occurs,
so it is only valid when the last ime update call has the comp_str.
- The result_str is retained even if the next ime update call occurs.
- If the next ime update call has the result_str, it is appended after
the previous result_str. (e.g. 'r-k-1' or 'r-k-<SPACE>')
Test key sequences are:
- "Japanese Romanji" : 'nihongo-<SPACE>-n'
- "Korean 2-Set Keyboard" : 'r-k-s-k'
- "Korean 2-Set Keyboard" : 'r-k-1" or 'r-k-<SPACE>'
--
v2: win32u: Preserve result string from multiple WINE_IME_POST_UPDATE call during ImeProcessKey.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7766