Commit graph

374 commits

Author SHA1 Message Date
Katayama Hirofumi MZ 7cc89e520c [NTUSER] Implement IntCheckImeShowStatusInThread
CORE-11700
2022-11-17 10:27:12 +09:00
Hervé Poussineau 0ecd997bdf [WIN32SS:NTUSER] Extract InitVideo() prototype and gbBaseVideo variable to header 2022-11-15 23:15:26 +01:00
Katayama Hirofumi MZ a2c6af0da4
[BOOTDATA][NTUSER] Add UserIsIMMEnabled and use it (#4882)
This PR enables SRVINFO_IMM32 also for non-CJK. You can disable this flag by setting zero to the LoadIMM registry value if you're non-CJK.
CORE-11700
2022-11-15 17:10:06 +09:00
Joachim Henze 1dd9d2ef37
[NTUSER][USER32] Classic Theme: disabled "checked" checkboxes should be grey (#4874)
Classic Theme: disabled "checked" checkboxes should be grey CORE-18609
and not black, like they erroneously were.
This patch does not seem to have any impact on how they are rendered
for themed ros.

Ftr: We experimented also with COLOR_GRAYTEXT instead of COLOR_BTNSHADOW
but that did result in incorrect drawing of disabled "checked" checkboxes for
the 'High Contrast' Color Schemes.
2022-11-14 00:01:29 +01:00
Katayama Hirofumi MZ 0bc6bd6480
[NTGDI][NTUSER][INCLUDE] Add 'See also:' comments for structures (#4872)
Add 'See also' URLs to some undocumented structures.
2022-11-12 20:27:50 +09:00
Katayama Hirofumi MZ 40863aebc4 [NTUSER] Add 'Win:' comments around IntDefWindowProc 2022-11-10 15:59:52 +09:00
Katayama Hirofumi MZ 0484beb04b
[NTUSER] Don't redraw scrollbar if it is hidden (#4849)
Fix redrawing bug on Command Prompt. CORE-18593
2022-11-10 13:12:20 +09:00
Thomas Faber 885459d8b4
[WIN32K:NTUSER] Fix parameter check in NtUserGetAsyncKeyState. CORE-18124 2022-10-30 10:46:33 -04:00
Katayama Hirofumi MZ 8f9283398a [NTUSER] Add 'Win:' comment to InitThreadCallback 2022-10-29 14:08:15 +09:00
Katayama Hirofumi MZ 36f7d1a953
[KBSWITCH][CPL:INPUT][NTUSER][EXPLORER] Fix keyboard layout icon (#4815)
Fix keyboard layout icon in taskbar notification area. JIRA issue: CORE-11700, CORE-2699, CORE-18546
- Call ActivateKeyboardLayout to select the keyboard layout correctly.
- Modify WM_INPUTLANGCHANGEREQUEST parameter.
- Modify BroadcastSystemMessageW parameter.
- Revert Taskbar Notification Area MA_NOACTIVATE HACK 8344291 . This fixes Context Menu display.
- Load the "IME File" value and set the IME icon if necessary.
- Correctly implement global hooks.
2022-10-29 07:35:19 +09:00
Katayama Hirofumi MZ 7a8ddbf147
[NTUSER] Support SM_DBCSENABLED and SM_IMMENABLED (#4806)
- Don't set SRVINFO_CICERO_ENABLED flag because we don't have Cicero support.
- Improve UserGetSystemMetrics for SM_DBCSENABLED and SM_IMMENABLED.
- Delete useless UserIsDBCSEnabled function.
CORE-11700
2022-10-27 21:53:58 +09:00
Jose Carlos Jesus 9701bbcf6d
[NTUSER] Fix issue when cursor/caret is static
Also remove the check that Windows doesn't do.

CORE-17929
2022-10-25 23:54:31 +03:00
Katayama Hirofumi MZ 39fe905efa
[NTUSER] Improve IntSetImeHotKey (#4789)
- Use the LOWORD value for VK_PACKET detection.
- IntGetImeHotKeyByKeyAndLang accepts the neutral language identifier (that is zero).
CORE-11700
2022-10-20 02:57:47 +09:00
Katayama Hirofumi MZ dff4579bd6 [NTUSER][USER32][INCLUDE] s/SETIMEHOTKEY_DELETEALL/SETIMEHOTKEY_INITIALIZE/
CORE-11700
2022-10-19 12:15:11 +09:00
Katayama Hirofumi MZ ac0a0adc51
[NTUSER][USER32] Improve DrawFrameControl:DFC_MENU and DFC_BUTTON (#4783)
A retrial of 13868ee (#4779).
- Fill the background if necessary, and set the text color and the back mode in DrawFrameControl:DFC_MENU.
- Use UITOOLS95_DrawFrameMenu in menu drawing instead of DrawFrameControl.
CORE-18515, CORE-18417
2022-10-17 13:28:56 +09:00
Katayama Hirofumi MZ 227e596f68
Revert "[USER32][NTUSER] Fill by white in DrawFrameControl:DFC_MENU (#4779)" (#4784)
This reverts commit 13868ee0e8.
CORE-18515
2022-10-16 00:18:50 +09:00
Katayama Hirofumi MZ 13868ee0e8
[USER32][NTUSER] Fill by white in DrawFrameControl:DFC_MENU (#4779)
DrawFrameControl:DFC_MENU draws the monochrome image of menu arrow or checkmark. However, the function didn't draw the entire rectangle correctly when the rectangle was not a square. CORE-18417
2022-10-15 21:00:13 +09:00
Jose Carlos Jesus d794996217
[NTUSER] Call SpiSetDWord when processing SPI_SETCARETWIDTH message
This corresponds to REG_DWORD type of CaretWidth value.

CORE-18151
2022-10-12 22:12:12 +03:00
Katayama Hirofumi MZ 826bd41d88
[NTUSER][USER32] Initial support of WS_EX_NOACTIVATE flag (#4731)
WS_EX_NOACTIVATE flag forbids the window to be activated. CORE-18417
2022-10-04 09:40:43 +09:00
Doug Lyons bd027c9de4
[NTUSER] Fix 'Trying to link windows to itself' (#4478) CORE-18132
Fix 'Trying to link windows to itself' on DestroyWindow. Patch by I_Kill_Bugs.
This fixes a potential BSOD 0x50 observable in the app Localizer Editor"
2022-10-04 00:26:02 +02:00
Katayama Hirofumi MZ 2469ce2c31
[NTUSER][KBSWITCH] Realize Alt+Shift keyboard switch (retry) (#4721)
Alt+Shift is a useful key combination to switch the current keyboard layout. CORE-11737
- Add ID_NEXTLAYOUT command to kbswitch.
- Send command ID_NEXTLAYOUT to kbswitch on Alt+Shift key combination in WM_SYSKEYDOWN handling of IntDefWindowProc function.
- Make IntFindWindow a non-static function.
2022-09-26 08:07:50 +09:00
Katayama Hirofumi MZ 8a48446d11 [NTUSER] Use IS_CICERO_MODE() macro in co_UserActivateKeyboardLayout
CORE-11700
2022-09-16 17:41:12 +09:00
Katayama Hirofumi MZ b76602ff22 [NTUSER] Fix UserSetDefaultInputLang by using reordering
- Move IntReorderKeyboardLayouts function.
- Fix UserSetDefaultInputLang function.
CORE-11700
2022-09-13 14:32:39 +09:00
Katayama Hirofumi MZ 5bd03d8b97 [NTUSER] Implement IntReorderKeyboardLayouts
This function is provided for KLF_REORDER flag.
CORE-11700
2022-09-08 11:00:04 +09:00
Katayama Hirofumi MZ 5b87c95e23 [IMM32] s/Imm32IsCiceroMode/IS_CICERO_MODE/
CORE-11700
2022-09-08 09:40:50 +09:00
Katayama Hirofumi MZ 85e292d58f
[NTUSER][USER32][IMM32] Initialize pKL->piiex by using ImmLoadLayout (#4645)
To recognize IME, we have to initialize pKL->piiex.
- Add co_ClientImmLoadLayout and User32CallImmLoadLayoutFromKernel functions to call imm32!ImmLoadLayout on user mode from kernel.
- Use co_ClientImmLoadLayout in NtUserLoadKeyboardLayoutEx.
- Improve Imm32LoadIME to sanitize the IME table.
CORE-11700
2022-09-05 08:34:00 +09:00
Katayama Hirofumi MZ facc2837a1
[NTUSER] Move TL structure definition to ntuser.h (#4644)
- Move struct _TL and TL definitions from win32.h to ntuser.h.
- Modify the type of TL.pfnFree as newly-defined TL_FN_FREE function pointer.
CORE-11700
2022-08-30 09:35:27 +09:00
Katayama Hirofumi MZ 8222c0e6d8 [KBSWITCH][NTUSER] Revert Shift+Alt handling
The current Shift+Alt handling is buggy. The keyboard won't work frequently.
It dislikes system-side Alt (VK_MENU) key handling.
It seems like Shift+Alt handling should be in kernel.
CORE-10667
2022-08-28 20:15:33 +09:00
Katayama Hirofumi MZ 0aa9d9fdb7 [USER32] Fix HKL keyboard list values (Retrial)
CORE-18338
2022-08-28 09:08:12 +09:00
Katayama Hirofumi MZ 5d123ce5f1
Revert "[USER32] Fix HKL value in IntLoadKeyboardLayout (#4632)" (#4637)
This reverts commit ea2d32b9eb.
2022-08-28 08:11:01 +09:00
Katayama Hirofumi MZ ea2d32b9eb
[USER32] Fix HKL value in IntLoadKeyboardLayout (#4632)
The loaded HKL values were wrong. CORE-11700
2022-08-27 07:42:37 +09:00
Katayama Hirofumi MZ c7ba53e3fb [NTUSER] Follow-up of 9e7c2ba
CORE-11700
2022-08-25 12:07:32 +09:00
Katayama Hirofumi MZ 9e7c2ba460 [NTUSER] Improve NtUserGetImeInfoEx / NtUserSetImeInfoEx
CORE-11700
2022-08-25 10:20:42 +09:00
Katayama Hirofumi MZ b4f73f040f
[KBSWITCH][NTUSER] Realize Shift+Alt language switch (#4622)
- Fix co_UserProcessHotKeys on modifiers-only hot-keys.
- Add Alt+Shift hot-keys to kbswitch window.
CORE-11737
2022-08-24 07:31:46 +09:00
Katayama Hirofumi MZ f34b8460e3
[NTUSER] Use assignment-lock against THREADINFO.KeyboardLayout (#4620)
- Assignment and locking are managed by UserAssignmentLock/UserAssignmentUnlock.
- Synchronize ClientInfo->hKL to pti->KeyboardLayout->hkl.
CORE-11700, CORE-18317
2022-08-23 19:32:23 +09:00
Katayama Hirofumi MZ 6c748ca8a9
[NTUSER] Rewrite NtUserUnloadKeyboardLayout (#4613)
- Add co_IntUnloadKeyboardLayoutEx (Win: xxxInternalUnloadKeyboardLayout), IntUnloadKeyboardLayout (Win: xxxUnloadKeyboardLayout) helper functions.
- Rewrite NtUserUnloadKeyboardLayout function.
CORE-11700
2022-08-20 09:45:06 +09:00
Katayama Hirofumi MZ e44e151840
[NTUSER] Empower co_UserActivateKeyboardLayout (#4608)
- Add code to co_UserActivateKeyboardLayout function for IME.
- Add IntImmActivateLayout helper function.
CORE-11700
2022-08-16 22:03:54 +09:00
Katayama Hirofumi MZ fe8f80610e
[NTUSER] Send WM_IME_SYSTEM:IMS_LOADTHREADLAYOUT at IntCreateWindow (#4606)
- Send WM_IME_SYSTEM:IMS_LOADTHREADLAYOUT message at IntCreateWindow function.
CORE-11700
2022-08-16 08:02:49 +09:00
Katayama Hirofumi MZ 379188acfe
[NTUSER] Refactor NtUserUnloadKeyboardLayout (#4605)
- Add IntHKLtoPKL, co_UserActivateKeyboardLayout, IntReorderKeyboardLayouts, and co_IntActivateKeyboardLayout helper functions.
- Rewrite NtUserUnloadKeyboardLayout by using helper functions.
CORE-11700
2022-08-15 08:25:06 +09:00
Katayama Hirofumi MZ d519b11a28
[NTUSER] Security: Follow-up of #4595 (#4598)
Improve security. CORE-11700
2022-08-08 21:23:49 +09:00
Katayama Hirofumi MZ 3e42f7b478
[NTUSER][USER32] NtUserGetKeyboardLayoutName and GetKeyboardLayoutNameW (#4595)
#4594 has proved that the 1st argument of NtUserGetKeyboardLayoutName has type PUNICODE_STRING.
CORE-11700
2022-08-06 08:02:31 +09:00
Katayama Hirofumi MZ 5f4db56486
[NTUSER] KLF_UNLOAD flag of NtUserGetKeyboardLayoutList (#4592)
This implementation enables KLF_UNLOAD flag awareness on listing the KLs.
CORE-11700
2022-08-03 12:45:10 +09:00
Katayama Hirofumi MZ b9ecf4b055
[NTUSER] Release WinSta->spklList at IntWinStaObjectDelete (#4593)
Call UserAssignmentUnlock((PVOID*)&WinSta->spklList); in IntWinStaObjectDelete function.
CORE-11700
2022-08-02 10:46:37 +09:00
Katayama Hirofumi MZ 6c1b65d7a4
[NTUSER] Improve WINSTATION_OBJECT compatibility (#4591)
- Modify WINSTATION_OBJECT structure with inserting struct tagKL *spklList member.
- Add some C_ASSERT(offsetof(WINSTATION_OBJECT, ...) == ...);.
CORE-18252
2022-07-31 10:25:07 +09:00
Mark Jansen 81e0f74a7a
[WIN32K] Conditionally enable IMM32
MFC42 applications only expect an IME window when on a DBCS system,
so they will capture this IME window as their 'main' window on non-DBCS systems.
CORE-18212
2022-06-08 19:19:59 +02:00
Hervé Poussineau 2915d16543 [WIN32SS:USER] Do not write error message at end of enumeration in UserEnumDisplayDevices() 2022-06-08 07:58:12 +02:00
Stanislav Motylkov 26b88af642
[WIN32SS] Add missing code parts for monitor handling
- [VIDEOPRT] Add stub for IOCTL_VIDEO_ENUM_MONITOR_PDO.

- [WIN32SS:ENG] Add missing checks and comments.

- [WIN32SS:NTUSER] Add missing monitor handling and comments.

Addendum to 31827c43. CORE-18197 CORE-11715
2022-05-30 15:28:44 +03:00
Stanislav Motylkov 31827c43b6
[WIN32SS] EnumDisplayDevices: Fill DeviceID field properly
- [VIDEOPRT] Return the real PhysicalDeviceObject in Win32k callbacks.

- [WIN32SS:ENG] Pass PhysDeviceObject into the GraphicsDevice structure
  and rename the destination field accordingly.

- [WIN32SS:NTUSER] Request hardware identifiers from device PDO and
  fill DISPLAY_DEVICE's DeviceID field with the first identifier.

Now it's correctly passed to the usermode, and Desktop Propertes applet
can open the video adapter device properties.

Thanks to Hervé Poussineau for the help.

CORE-18197 CORE-11715
2022-05-30 15:28:21 +03:00
Hermès Bélusca-Maïto d21895e6ef
[WIN32K:NTUSER] Only call IntFreeSecurityBuffer() when needed, don't free NULL buffers.
Addendum to 878c2f44.
2022-05-23 19:30:13 +02:00
Hervé Poussineau 63e59e10f3 Revert "[WIN32SS] Only refresh graphics mode list when iModeNum = 0"
This reverts commit c243133b2c.

Without the revert, VirtualBox auto-resize doesn't work on first attempt,
but only on next ones.
However, according to documentation, we must only initialize device and
cache information when iModeNum = 0.

CORE-18189
2022-05-22 23:42:00 +02:00