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
XIM events are handled by Xlib internally and need to go through XFilterEvent to be processed.
This allows for keyboard input to be processed while connected to an input method daemon when an application only polls for keyboard input.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7509
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>'
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7766
This serie mainly moves the handling of local variables
described with DEFRANGE into the new reader.
Fixing in the process a couple of bugs.
Rest if mainly cleanup and helpers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7765
Implementation and test function for ADsBuildVarArrayInt, using ADsBuildVarArrayStr as reference.
- /dlls/activeds/activeds_main.c
- /dlls/activeds/tests/activeds.c
- /include/adshlp.h
--
v11: activeds: Implement ADsBuildVarArrayInt.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7752