Commit Graph

88234 Commits

Author SHA1 Message Date
Timo Kreuzer
f736154b27 [NTDLL_APITEST] Fix some tests
- Fix DllLoadNotification test on Vista (which seems to be broken)
- Fix NtAcceptConnectPort test on 64 bit
- Fix NtAllocateVirtualMemory test on Vista+
- Fix NtMapViewOfSection test on 64 bit
- Fix NtSetDefaultLocale test on Vista+
- Fix RtlBitmapApi test on Vista
- Fix RtlCaptureContext test
2026-01-28 12:59:20 +02:00
Katayama Hirofumi MZ
9e64b600f9 [BROWSEUI] Accept relative path on Address Bar (#8633)
Improve usability of Address Bar.
JIRA issue: CORE-19704
- Modify CAddressEditBox::ParseNow
  to accept relative path.
- Add SBSP_SAMEBROWSER |
  SBSP_ABSOLUTE flags for
  IShellBrowser::BrowseObject.
2026-01-28 18:00:04 +09:00
Katayama Hirofumi MZ
6350669667 [ZIPFLDR] Add dropped files (#8632)
JIRA issue: CORE-19020
- Add IDropTarget interface to
  CZipFolder.
- Modify CZipFolder::CreateViewObject
  and CZipFolder::GetUIObjectOf.
- Add CZipFolder.cpp and make
  CZipFolder some methods out-of-line.
- Extend CZipCreator for append.
- Implement IPersistFile of CZipFolder.
- Add DropHandler to CZipFolder.
2026-01-27 19:25:04 +09:00
Justin Miller
eb154533af [USBPORT][USBHUB] Improve Unplug and Plugin stability (#8624)
Dramatically improves stability when unplugging a bunch of devices at once (Except storage obviously)
and implements primitive ESD handling.
2026-01-26 19:55:44 +00:00
Katayama Hirofumi MZ
c56950dc19 [WALLPAPERS] Add Nebula wallpaper (#8637)
Nebula will be the default wallpaper for 0.4.16 release.
JIRA issue: RELEASE-7
2026-01-26 09:31:16 +09:00
Václav Zouzalík
d6395bcf61 [CYLFRAC] Add Czech (cs-CZ) translation (#8424)
* [CYLFRAC] Add Czech (cs-CZ) translation

* Update modules/rosapps/applications/screensavers/cylfrac/lang/cs-CZ.rc

Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>

---------

Co-authored-by: Stanislav Motylkov <x86corez@gmail.com>
2026-01-25 20:13:25 +01:00
Katayama Hirofumi MZ
370eb8c04d [ZIPFLDR] Support EF_UNIPATH UTF-8 path (#8631)
Unzip library has EF_UNIPATH field for UTF-8 path. Correctly
supporting EF_UNIPATH will fix the encoding problem.
JIRA issue: CORE-20443
JIRA issue: CORE-20444
- Check existence of EF_UNIPATH extra info for each path.
  If it exists, then use it.
- Use StrCmpIW for sorting.
- Make CZipEnumerator functions out-of-line.
2026-01-25 09:35:16 +09:00
Katayama Hirofumi MZ
8605d54a62 [KEYBOARD] Remove psdk dependency and add xdk (#8630)
Reduce building again time. keyboard
has no dependency against psdk
targets but xdk targets.
JIRA issue: N/A
2026-01-25 06:11:12 +09:00
Katayama Hirofumi MZ
efca5040cb [SHELL32] Get PerceivedType default icon (#8627)
Related to #8626. Display the correct icon.
JIRA issue: CORE-19355
- Modify CFSExtractIcon_CreateInstance function to load
  PerceivedType default icon.
2026-01-24 10:08:02 +09:00
Katayama Hirofumi MZ
69f10f6d38 [SHELL32] Add access key to IDS_OPEN_VERB and IDS_EXPLORE_VERB (#8619)
Improve keyboard accessibility.
JIRA issue: CORE-12323
2026-01-23 22:11:48 +09:00
Katayama Hirofumi MZ
789f6c5481 [FONTEXT] Implement paste operation (#8615)
Support paste operation on Fonts folder.
JIRA issue: CORE-12861
- Add CFontBackgroundMenu.cpp and CFontBackgroundMenu.h
  to support background menu.
- Modify CFontExt::CreateViewObject and
  CFontExt::GetUIObjectOf methods.
- Re-implement foreground menu by using
  CDefFolderMenu_Create2 and CFontExt::MenuCallBack.
- Delete needless CFontMenu.cpp.
- Add IDS_PROPERTIES resource string.
2026-01-23 14:28:09 +09:00
Justin Miller
2865b6353b [UEFILDR] Revise disk access code (#8623)
This commit reworks how the uefidisk code works so it's not longer... completely wrong.
This also allows GPT disks to now be used on uefildr.
It's not perfect (as the correct solution is having freeldr load full efi device paths instead of arc like bootmgr does)
but this will work perfectly fine now. Well should.
2026-01-23 01:12:21 +00:00
Hermès Bélusca-Maïto
9c0efba4b3 [USERINIT] Hide install option on LiveCD when no installer is available (#8614)
RELEASE-8
2026-01-22 21:48:32 +01:00
Hermès Bélusca-Maïto
d46372ef1a [USERINIT] Cleanup some traces and some code 2026-01-22 21:48:16 +01:00
Oleg Dubinskiy
27fde6f4dd [MMIXER] Further imrovements to volume control support (follow-up of 376708b)
Add more improvements and fixes to volume control implementation.
- Don't allocate and don't use an array for storing volume level values. Also, get rid from some stuff, which is not used any more (some fields of MIXERVOLUME_DATA structure and MMixerGetVOlumeControlIndex() function).
- Use the following formulas to properly convert the volume level values from the logical units range (0 - 65535) to the hardware Decibel (DB) range (defined by audio miniport driver): <decibels> = <units> * <range_in_db> / <range_in_units> + <minimal_level> (for setting the new value) and <units> = (<decibels> - <mimimal_level> + 1) * <range_in_db> / <range_in_units> (for getting the previous value), where <decibels> is a DB hardware value, <units> is logical units value, <rang_in_db> is the hardware range (DB), <range_in_units> is range in the logical units and <minimal_level> is the most minimum volume level value defined by an audio miniport driver.
- I've created this formula myself basing on my calculations and investigations (with some help from Hermes Belusca-Maito), so it's tested and confirmed to be working for all possible values range (at least for our official Intel AC97 driver, and, as tested later, Realtek HD audio).
- Do this in both cases when setting the new and when getting the previous volume value as well.
- Fallback to default values range -96 - 0 DB in case either the volume level property is not supported by audio miniport driver, or the values range is empty (SignedMinimum is equal to SignedMaximum and both of them typically have a 0 (zero) value). Realtek HD audio codec is one of such a drivers, so this fixes the volume control on real hardware too (tested on Asus-F5R notebook with Realtek ALC660 audio controller). Moreover, the volume values set by user are even properly saved (aren't lost) after reboot (unlike with Intel AC97 in VirtualBox or SoundBlaster in VMware)! Realtek probably uses another mechanism to write/read the value(s) to/from Registry, which is handled by the miniport (codec) driver instead.
This fixes some remaining bugs when changing the volume level, so now 1) min/max position of the volume bar can be reached correctly and 2) left/right balance sliders are now behaving properly (they don't affect position of each other anymore when moving them manually).
CORE-19189, CORE-19190
2026-01-22 16:49:09 +01:00
Oleg Dubinskiy
c9911d3de9 [MMIXER] Revert "HACK: Decrease SteppingDelta for each volume value by 1"
This is actually a hack and isn't required anymore because I made a proper fix instead.
Doing -1 does not fix the problem correctly, but only makes a pseudo-effect that it's fixed by actually truncating each volume value, so then the volume sliders misbehaving does occur less (but it still does).
This reverts commit 206b52833f.
CORE-19190
2026-01-22 16:49:09 +01:00
Katayama Hirofumi MZ
f6bb2c98d8 [SHELL32] Fix L'PerceivedType ' typo (#8620)
JIRA issue: N/A
2026-01-22 21:19:09 +09:00
Hermès Bélusca-Maïto
6a8c5f99a7 [FREELDR:NTLDR] Fix displaying the loaded modules list in SOS mode (#8616)
Fix minor regression after commits f81c1910ee and e56911f66b (PR #7488).

The `PeLdrImportDllLoadCallback` variable was exported as a function,
instead of as data, which was incorrect since it is a data pointer,
that is set by winldr code (in rosload.exe) to tell the PE loader
(residing in freeldr.sys) to perform an action when an imported DLL
is being loaded.
2026-01-22 12:03:29 +01:00
Doug Lyons
7de9099e5d [REGEDIT] Fix import of ASCII file writing Unicode data (#8587)
Test text of ASCII file using "hex()" data for presence of Unicode and handle accordingly.

CORE-15185
2026-01-21 20:43:42 -06:00
Katayama Hirofumi MZ
3342fc6633 [SYSSETUP][SDK] Set arrow to current task (#8598)
Follow-up of #8596.
JIRA issue: N/A
- Add IDI_ARROWICON (arrow-16x16.ico)
  icon and IDI_CROSSICON
  (cross-16x16.ico).
- Retrieve normal font from control.
- Set arrow icon to the current task.
- Set bold font to the current task.
- Set normal font to done tasks.
2026-01-22 08:24:21 +09:00
Hermès Bélusca-Maïto
ee97db9f83 Christmas & new-year period has now ended. 2026-01-21 15:56:41 +01:00
Hermès Bélusca-Maïto
fc75870f1c [WIN32SS:NTGDI] Addendum to commit 108db5b356 (PR #8536)
- In the `if (!psurf)` code path, unlock in the reverse locking order.
- Move the `SafeInData == NULL` check outside of `_SEH2_TRY` and just
  after the `ExAllocatePoolWithTag` call.
- Removing trailing whitespace.
2026-01-20 19:52:47 +01:00
Justin Miller
108db5b356 [NTGDI] Minimal pass of fixing ExtEscape (#8536)
* [WIN32SS] Minimal pass of fixing ExtEscape
Resolves issues with the AMD/ATI GPU Driver and the Intel OpenGL ICD when used in fullscreen mode.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2026-01-20 17:56:03 +00:00
Timo Kreuzer
49f633517f [WIN32K:NTGDI] Fix last error for NtGdiMaskBlt 2026-01-20 12:35:55 +02:00
Timo Kreuzer
4799c8a21c [WIN32K][GDI32] Handle crBackColor in NtGdiMaskBlt and NtGdiStretchBlt
Pass it to EXLATEOBJ_vInitXlateFromDCsEx, which uses it (or, if it's CLR_INVALID, the source DC's background color) to initialize the EXLATEOBJ.
Adjust all callers to pass CLR_INVALID instead of 0.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
bb7a218367 [WIN32K:ENG] Implement EXLATEOBJ_vInitXlateFromDCsEx
This version allows to pass a background color.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
2a258c3bff [WIN32U_APITEST] Remove obsolete todo_ros 2026-01-20 12:35:55 +02:00
Timo Kreuzer
3e7009a08e [WIN32K:NTGDI] Mark DIB palettes with PAL_DIBSECTION flag
This is needed, because color translation works differently for DIB sections.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
11c276109c [WIN32K:NTGDI] Mark 2-color indexed palettes as monochrome
This is mostly an optimization, as translation from RGB to mono are much faster than generic indexed palettes.
It exposes a broken RGB-to-mono translation though, which previously was hidden for DIB sections, which didn't mark the palette as mono, therefore taking the slow index path, which worked correctly.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
ce8329f862 [WIN32K:ENG] Rewrite monochrome color translation
- Handle DIB sections
- Use DC's background / foreground colors as appropriate
- Optimize translation functions
2026-01-20 12:35:55 +02:00
Timo Kreuzer
ece903d96f [WIN32K:NTGDI] Fix pen color on 1BPP surfaces
The actual color is not nearest-matched (like for SetPixel), but the RGB color is matched against background color of the DC.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
f09fcc2a96 [WIN32K:NTGDI] Handle RGB/BGR directly in PALETTE_ulGetNearestIndex 2026-01-20 12:35:55 +02:00
Timo Kreuzer
3e61bc2bed [WIN32K:DIB] Fix DIB_1BPP_BitBltSrcCopy_From1BPP
Handle cases where the XLATEOBJ always translates to 0 or 1 independent of the source pixel.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
c6c3ac7473 [WIN32K:NTGDI] Improve TranslateCOLORREF
Fixes a number of tests for NtGdiSetPixel.
2026-01-20 12:35:55 +02:00
Timo Kreuzer
cbbca1e98f [WIN32K:NTGDI] Improve NtGdiSetPixel 2026-01-20 12:35:55 +02:00
Katayama Hirofumi MZ
9420ab7683 [FONTEXT] Support Drag&Drop font installation (#8600)
JIRA issue: CORE-12861
JIRA issue: CORE-20445
- Add IDD_INSTALL resource dialog.
- Add IDS_INSTALL_OK and IDS_INSTALL_FAILED
  resource strings.
- Add CheckDropFontFiles, GetDropFromDataObject,
  and InstallFontsFromDataObject helper functions.
- Support IDropTarget at CFontExt::GetUIObjectOf.
- Add CFontFolderViewCB.cpp and
  CFontFolderViewCB.h files and implement
  CFontFolderViewCB class.
- Implement Drag & Drop operation.
2026-01-20 13:13:27 +09:00
Katayama Hirofumi MZ
f60b1c99c8 [SHELL32] Refresh Recycle Bin (#8594)
The filesystem of the virtual folder
"Recycle Bin" is complicated, so we
had to add special handling to watch
change notification on it.
JIRA issue: CORE-20435
- Add CRecycleBinFolderViewCB.cpp
  and CRecycleBinFolderViewCB.h.
- Add CRecycleBinFolderViewCB class
  (with IShellFolderViewCB interface)
  and associate it with CRecycleBin.
- Hook SFVM_QUERYFSNOTIFY and
  SFVM_FSNOTIFY in
  CRecycleBinFolderViewCB.
- Implement watching of shell change
  notification.
2026-01-20 08:40:09 +09:00
Justin Miller
0511e9d869 [VIDEOPRT] Expand how resource usage is handled in videoprt (#8272)
Allows our upcoming PCIX driver to work correctly with it, and now the arbiter on Windows with our videoprt actually matches the behavior and improves video driver compatibility
2026-01-19 09:04:55 -08:00
Oleg Dubinskiy
c9da37f7a4 [ENG] Fix behaviour of EngGradientFill() for rectangles
Don't offset the rectangle's top left point to the current dithering point, since it's already done now in Gre part of the function.
This fixes broken gradient captions after the previous commit, in case when Drv implementation is not provided by a display/video driver and Eng function is used instead.
CORE-14927, CORE-15341
2026-01-19 11:39:28 +01:00
Oleg Dubinskiy
3a763d2126 [NTGDI] Fix gradient offset handling
- Offset vertex array to the current DC's coordinates for rectangular gradients. Don't change anything for triangular gradients. This is more correct regarding to how Windows XP/2003 handles that and debugging analysis shows the same behaviour there.
- Additionally, fix checking mode condition for triangles on parameters validation. It should actually be checked for an equalness, not via bitwise "OR", since only one mode type can be set for ulMode parameter for GradientFill() according to MSDN.

This avoids incorrect gradient coordinates passed to DrvGradientFill() in case it's supported by the display/video driver, so now gradients are drawing at the correct position as they should.
Hence, this fixes broken gradients in window captions (always painted at the top left corner) on real hardware with native video drivers (AMD/ATI/Intel/Nvidia etc.). Tested successfully on Asus-F5R notebook with ATI Radeon XPress 1100 + ATI Catalyst 10.2 video driver at least.
CORE-14927, CORE-15341
2026-01-19 11:39:28 +01:00
Thomas Anderson
afc4f33b20 [IEXPLORE] Make the Internet Browser desktop icon use DuckDuckGo instead of Google (#8582)
Google recently made modern browser a requirement for their search to work,
which the Gecko engine for ReactOS doesn't fulfill.

Since ReactOS is already using DuckDuckGo as the default search engine,
set it as a default start page.

- Before: https://github.com/user-attachments/assets/c544726f-2d83-4a9a-9d53-e9c17fc04fe9
- After: https://github.com/user-attachments/assets/5de5b007-3d1f-458d-a642-6b9e657b4c62
2026-01-19 12:40:52 +03:00
Mikhail Tyukin
4e7a64b3ec [MSAFD][AFD] Asynchronous connection support (#8573)
* [MSAFD] async support

- Allow APCs to be processed while waiting for blocking IO
- Remove SleepEx hacks

[MSAFD][AFD][TCPIP] Patch CORE-12152

Original author: Peter Hater <7element@mail.bg>

TCPConnect: Always copy bind address into connection.

[MSAFD] SetSocketInformation: Remove unnecessary TRACE code blocks

[MSAFD] AfdRecvAPC and AfdSendAPC: Remove unnecessary NULL checks

[MSAFD] WSPRecv, WSPRecvFrom and WSPSend: Fix leaks and fix IOCTL input buffer handling

[MSAFD] Rewrite WSPSendTo

[MSAFD] Rewrite WSPConnect and AfdConnectAPC

[MSAFD] Remove hacky SleepEx calls

[MSAFD] Don't wait with no timeout

[MSAFD] send/receive: Fixes for overlapped socket

- Fix IOCTL buffers handling
- Allow APC to be processed

[MSAFD] connect: Fixes for async connect

- Allow APC to be processed
- Remove "mark as connected" hack for non-blocking socket

[MSAFD] Get/SetSocketInformation: Fixes for overlapped socket

- Fix IOCTL buffer handling
- Allow APC to be processed

[MSAFD] APC fixes

Fix New Moon 28 crash on website ads.

[MSAFD] Code cleanup

- Rename APC context data type
- Rename APC functions (Afd* -> Msafd*)
- Add SAL annotation
- BUGBUG -> FIXME
- Use sizeof(*ptr) instead of sizeof(type)
- Fix debug prints

[MSAFD] Add comment for SleepEx hacks

[MSAFD] WSPGetOverlappedResult: Fix failed ws2_32:recv tests

[MSAFD] WSPConnect: Fix IOCTL status handling

[MSAFD] send/receive: Simplify IOCTL status handling

[MSAFD] Get/SetSocketInformation: Simplify IOCTL status handling

Co-Authored-By: Emmanuel Gonzalez <momo16136@tamu.edu>
Co-Authored-By: Julio Carchi Ruiz <juliocarchi@yahoo.com>

* [MSAFD] Fixes
- pass overlapped structure pointer to apc context when there no completion routine. .NET expects this behavior
- Fix WSPGetOverlappedResult to return flags and status code upon failure
---------
Original author: Peter Hater <7element@mail.bg>
Co-authored-by: Thamatip Chitpong <thamatip.chitpong@reactos.org>
Co-authored-by: Emmanuel Gonzalez <momo16136@tamu.edu>
Co-authored-by: Julio Carchi Ruiz <juliocarchi@yahoo.com>
2026-01-18 13:42:24 -06:00
Hermès Bélusca-Maïto
fda2ee2ad8 [BOOTVID] Modularize the different bootvid's build rules (#8548)
The aim is to be able to compile multiple bootvids for a given ReactOS
build without having to duplicate the same commands.
2026-01-18 18:19:01 +01:00
Timo Kreuzer
668c9c0528 [CMAKE] Defeat the GNU linker
Make the GNU linker behave less backwards and more like a real linker (like the MSVC one) by wrapping all libraries in a linker group, which essentially disables the linear ordering requirement for dependencies.
No more GCC linker dependency hell!
The sad thing is, that one has to resort to hacking the CMake linker command line to achieve this, as there is neither a global linker option nor a CMake option to achieve this.
This commit also modifies the linker command order slightly for consistency.
2026-01-18 17:05:46 +02:00
Eric Kohl
e7de59ba45 [DISKPART] Add missing trailing CRLF 2026-01-18 09:12:12 +01:00
Katayama Hirofumi MZ
44200f9142 [BOOTDATA][NTUSER] Enable LoadIMM setting (#8602)
Enable IMM mode and reduce
imm32_apitest failures.
JIRA issue: CORE-19268
- Enable LoadIMM registry setting.
NOTE: We have already DontLoadCTFIME
setting to avoid loading CTF IME.
Supporting CTF IME will be future work.
2026-01-18 11:17:56 +09:00
Eric Kohl
6da5483392 [DISKPART] Make size units translatable 2026-01-18 01:23:20 +01:00
Vitaly Orekhov
7c801c2c15 [SNDVOL32] Update master volume and mute on external events (#8580)
Tray popup window that shows master volume and mute was not updated in real
time if something outside it adjusted master volume or line mute. Now it does.

- Handle `MM_MIXM_CONTROL_CHANGE` window message in `sndvol32.exe!TrayDlgProc`

CORE-12632
2026-01-17 21:14:44 +03:00
Katayama Hirofumi MZ
c877247064 [SDK][PSDK] Add <msctfmonitorapi.h> header (#8599)
Supporting advanced IME.
JIRA issue: CORE-19268
Add sdk/include/psdk/msctfmonitorapi.h.
2026-01-18 02:06:21 +09:00
Katayama Hirofumi MZ
ba1e474a98 [SHELL32] Translating PIDLs: Check NULL and fix PIDL flags update (#8603)
#8569 introduced an exception bug.
JIRA issue: CORE-20441
- In CreateNotificationParamAndSend
  function, check NULL for PIDLs.
- In SHELL32_ReparentAsAliasPidl
  function, fix updating PIDL flags.
2026-01-17 23:21:19 +09:00