A bit clearer code. A bit faster execution.
- NtUserGetTitleBarInfo(): Add/Use early returns.
Addendum to
3b4c9ded42 (r33657).
- NtUserTrackPopupMenuEx():
Check flags a bit earlier.
Addendum to
3c35117f97
(0.4.16-dev-1275).
- NtUserThunkedMenuItemInfo():
Sort out code and comments
- menu.c: Move UserLeave() a bit earlier.
The following code in user32_winetest scroll.c was causing it:
ret = EnableScrollBar( mainwnd, SB_CTL, ESB_ENABLE_BOTH );
ok( !ret, "EnableScrollBar should fail.\n" );
This PR resolves a bug of #8094. #8094
correctly validates the flags. TPM_SYSTEM_MENU is an internal flag
and not a valid flag for TrackPopupMenu.
Thus, calling TrackPopupMenu.TPM_SYSTEM_MENU
in User32DefWindowProc was wrong.
This caused failure of taskbar context
menu.
JIRA issue: CORE-20238
- Move WM_POPUPSYSTEMMENU
message handling of user32 into
win32k.sys!IntDefWindowProc.
- Use win32k.sys!IntTrackPopupMenuEx
instead of user32!TrackPopupMenu
in handling of WM_POPUPSYSTEMMENU.
The caret move on IME was slow until this PR.
JIRA issue: CORE-19268
- Don't use ImmIsIME but use IS_IME_HKL(hKL) in
EDIT_SetCaretPos function. This change improves
the caret speed.
- Prohibit display of composition window for Korean
in the handling of WM_IME_SETCONTEXT and
WM_IME_STARTCOMPOSITION, because Korean
doesn't want it.
Improve CTF IME customization.
Use the proper names for CTF IME.
JIRA issue: CORE-19268
- In the registry key "HKLM\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\IMM", add
DontLoadCTFIME value and set it to 1.
- Delete LoadCTFIME value to avoid user
confusing.
- Rename UserIsCiceroEnabled function
as UserIsCTFIMEEnabled.
- Rename SRVINFO_CICERO_ENABLED
flag as SRVINFO_CTFIME_ENABLED.
Validate flags.
JIRA issue: CORE-3247
- In NtUserTrackPopupMenuEx function, validate the flags.
- If validation failed, then set last error and return FALSE.
- Add SAL annotations to NtUserTrackPopupMenuEx.
- Keep reference to menu in the function.
- Add TrackPopupMenuEx testcase to user32_apitest.
Splitted from #8080. The message
handling of WM_IME_SYSTEM.0x1D
is needed for IME menu handling.
JIRA issue: CORE-20142
- Define IMS_IMEMENUITEMSELECTED
(0x1D) in <immdev.h>.
- Add WM_IME_SYSTEM.0x1D handling
in ImeWnd_OnImeSystem function.
- Rename and extend
User32GetImmFileName function as
User32GetSystemFilePath, with
adding a filename parameter.
Validate structure size.
JIRA issue: CORE-3247
- In IntTrackPopupMenuEx function,
if lpTpm was non-NULL, then
validate lpTpm->cbSize.
- If validation failed, then set last
error and return FALSE.
- Remove duplicated code in NtUserRegisterHotKey() and in
NtUserUnregisterHotKey() by directly calling UserRegisterHotKey()
and UserUnregisterHotKey() after the usual user-validation steps.
- In UserRegisterHotKey(), ignore hotkeys with virtual key VK_PACKET
since this is not a real keyboard input, but is instead used in
conjunction with unicode characters to simulate keystrokes for
non-keyboard input methods.
- s/StartDebugHotKeys/SetDebugHotKeys/
- Remove duplicate code between NtUserCallMsgFilter() and IntCallMsgFilter().
Refactoring and improving trace.
JIRA issue: CORE-19455
- Add SAL2 annotations to
function parameters.
- Add and improve tracing
(TRACE and ERR) for easier
debugging.
Fix annotations' mistakes. Improve debug output.
JIRA issue: CORE-19268
- Fix some SAL annotations.
- Use debugstr_a and debugstr_w for tracing
strings.
- Add static to some functions.
- Remove APIENTRY of some functions.
- Fix code formatting.
* [WIN32K:DIB] Fix 'DIB_16BPP_AlphaBlend' copypasta in a DPRINT()
Addendum to 684c3d3 (r49275).
* [WIN32K:DIB] USE_DIBLIB: Use new DIB_16BPP_AlphaBlend()
Addendum to 7540c2e (r64953).
Splitting IME installation code for code readability.
JIRA issue: CORE-19268
- Add win32ss/user/imm32/install.c.
- Move some code to install.c.
- Add SAL annotations. Use debugstr_a/_w macro.
- Modify <imm32_undoc.h>.
- Don't CharUpperW for IME pathname due to
security reason.
Implementing missing features...
These functions are given for IME
program handling.
JIRA issue: CORE-19268
- Implement ImmIMPQueryIMEA
and ImmIMPQueryIMEW functions.
- Implement ImmIMPSetIMEA and
ImmIMPSetIMEW functions.
- Add prototypes to <imm32_undoc.h>.
imm32 and win32ss have common
interface. This move will improve
grep-ability.
JIRA issue: N/A
- Move dll/win32/imm32 to
win32ss/user/imm32.
- Adapt CMakeLists.txt to this move.
- No code content change except
CMakeLists.txt and .github\labeler.yml.
SPI_SETDOCKMOVING allows you to turn off window snapping when moving a window with the mouse. The Win keys can still snap unless you turn everything off with SPI_SETWINARRANGING.
This PR enhances Cicero IME support.
JIRA issue: CORE-19268
- Add null checks for the functions
of Cicero IMEs in Imm32LoadIME
function.
- Add and use
IS_CICERO_COMPAT_DISABLED
macro in win32ss/include/ntuser.h.
- Fix ImmGetImeInfoEx,
Imm32LoadImeDpi,
ImmGetDescriptionA,
ImmGetDescriptionW,
ImmGetIMEFileNameA,
ImmGetIMEFileNameW, and
ImmGetProperty functions for
Cicero IME support.
- Set last error in NtUserGetImeInfoEx.
- choose VGA adapter outside of driver initialization loop
- choose primary adapter outside of driver initialization loop
- link VGA adapter to primary adapter at the end
- only set DISPLAY_DEVICE_PRIMARY_DEVICE in this function
Also mark VgaSave driver as SystemStart instead of Disabled,
so it is available if main display driver doesn't work.
I want to work in correct type info.
JIRA issue: CORE-17684
- Add and fix SAL2 annotations.
- Fix const-ness of function
parameters.
- Delete needless type casts.
Enable the users to delete fonts.
JIRA issue: CORE-17684
- Add IntDeleteRegFontEntry helper function.
- Add RegDeleteValueW and RegEnumValueW helper
functions in win32ss/user/ntuser/misc/registry.c.
- Add some code to IntGdiRemoveFontResourceSingle
function.
* Check is FontGDI->OriginalWeight > FontGDI->RequestWeight and if so, then return original weight.
* Do not handle FontGDI->OriginalWeight as a boolean. Use 'FontGDI->OriginalWeight = FW_DONTCARE;'.
CORE-17011
Supporting soft keyboard will improve IME
usability.
JIRA issue: CORE-19268
- Define IMS_SOFTKBDONOFF constant as
0x13 in <immdev.h>.
- Implement
WM_IME_SYSTEM.IMS_SOFTKBDONOFF
message handling in ImeWnd_OnImeSystem.
This is a very small revert of PR #5227 to simplify the code and eliminate an MSVC warning.
It was pointed out by Timo Kreuzer as probably not doing what I intended and he was correct.
I added this code in PR #5227 to try and correct some return values from SetDIBitsToDevice.
After testing with this new PR, there was no difference in the regression tests for either
1) gdi32:bitmap or 2) gdi32:SetDIBitsToDevice after deleting the code here and the MSVC warning was fixed.
JIRA issue: CORE-18944
EDIT_EM_GetHandle unlocks the handle,
so the next EM_SETHANDLE handler
shouldn't unlock the unlocked text.
Don't unlock the handle when es->text
was NULL on EM_SETHANDLE
message handling.
Implements a couple of extra commands in IShellBrowser and adds support for the AppKeys fallback registry key (used when the foreground application does not handle the command).
Re-trial of #7800. Deleting __WINESRC__
hacks.
JIRA issue: CORE-5743
- Add sdk/cmake/set_wine_module.cmake.
- Load set_wine_module.cmake at
top-level CMakeLists.txt.
- Use set_wine_module cmake function
and delete __WINESRC__ as possible.
- Delete many include_directories.