Squashed backport of:
0.4.15-dev-3086-g 236649c626 (#3868) and
0.4.15-dev-3147-g 3bf7e3ac13 (#3953)
to fix some regressions for themed scrollbars that were introduced by
0.4.14-dev-1134-g 00adb1a3f9
fixes all or most parts of CORE-16735 without introducing CORE-17754 and CORE-17755
By taking alternative code-paths in WdmAud and bypassing Sysaudio.
This is my 2nd attempt to commit that.
This is a squashed backport of:
0.4.15-dev-791-g 6d7ebc2048 the USE_MMIXER_LIB which gives the best results when paired with those 2 previous patches:
0.4.15-dev-765-g b8e936a57b CORE-17214 (#3148) wdmaud-racecondition-fix and
0.4.15-dev-796-g a27f0debca CORE-17276 winmm:mixer-testbot-crash-fix
Defining USE_MMIXER_LIB will fix/improve:
- the test execution times of "GCCLin_x86 on Test VBox" will be dramatically improve (iirc by ~10-15min)
- CORE-8726/CORE-9986/CORE-16564 AC97 driver from rapps will work in the same session that the driver is installed, not a single reboot is needed anymore
- CORE-13202 Unhandled exception from wdmaud.drv when recording sound in Scratch 1.4 leads to app-crash (gets fixed even for older builds that did not receive 0.4.15-dev-2794-g 81f8bce yet)
- CORE-13488 A deadlock in "DiabloII" character selection screen and "The Lion King II"
- CORE-9981 "DosBox + Commander Keen6" almost 100% fixed, DosBox + Commander Keen6 properly plays music instead of garbled output,
same improvement for "ScummVM 2.0 with Monkey Island 2"
The playback is not yet *entirely* perfect, still a few hiccups now and then, but by orders of magnitude better than before.
Defining USE_MMIXER_LIB will also have some negative aspects:
- CORE-17277 crash of dsound:duplex on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- CORE-17278 crash of dsound:capture on "GCCLin_x86 on Test VBox" gets unhidden on the bot, but was proven to be broken even beforehand already. The driver beforehand was just not found and the tests were skipped therefore.
- It may also have a negative impact for CORE-17285 "Realtek HD Audio" but Oleg Dubinsky accepted to tolerate that and aims to approach it differently. I will resolve that as WontFix now.
I do recommend to change in function SymSetSearchPath: the line
WCHAR* sp;
to
WCHAR* sp = NULL;
to avoid the following compiler warning, that I got only on carrier-releaser interestingly,
../dll/win32/dbghelp/dbghelp.c: In function 'SymSetSearchPath':
../dll/win32/dbghelp/dbghelp.c:244:9: error: 'sp' may be used uninitialized in this function [-Werror=uninitialized]
cc1: all warnings being treated as errors
but I did not get that error on compilation when building this locally on "GCC4.7.2 RosBE2.1.6"
or "GCC8.4.0 RosBE2.21", or "VS2010", or with the buildbits/testbots. Weird!
I have no clue, why carrier releaser does behave different here at all upon compilation!
This is a minimized version of the not yet merged patch of (#3257).
I will commit only into the RC but not into master, because
author Thomas Faber is most likely interested in upstream integration.
It fixes Heap Corruption when starting KernRate, which I could confirm
with system-wide DPH beforehand.
Avoids the wizard for unrecognized devices to pop
up after each and every reboot when BTRFS is used.
Also slightly 'improves' the displaying in device manager.
Both regressed by 0.4.14-dev-1535-g 194ea909fd
This is no proper solution, but more or less the same
that we did for 0.4.13 release already.
The proper fix will come in 0.4.15-dev'ing with
the storage-stack-rewrite and does not require those
4 lines to be added in the btrfs.inf anymore.
That new dialog was added during 0.4.14-dev'ing.
Porting back its german translation makes sense therefore.
Especially since it is the last dialog of the bootcd setup
that would be untranslated otherwise for 0.4.14RC.
fix picked from 0.4.15-dev-2040-g b493a2f8ab
MSVC2010 compiler warning shellext\netshell\lang/de-DE.rc(118) : warning RC4206 : title string too long; truncated at 256
introduced by SVN r71434 == git 6ce8ee357a
The string was displayed properly and was not truncated even before this patch.
Fix picked from 0.4.15-dev-2885-g 7962db4cc1
Improve performance of Start-Run Dialog Box Options
This will fix:
CORE-17351 'RunDlg fails calling URL without http'
and
CORE-16898 'RunCommand "iexplore" fails to open Wine IE'
Both regressed by 0.4.10-dev-419-g bfcbda227f
Fix picked from 0.4.15-dev-2883-g 33c7c91b36
Fix missing ReleaseDC related to the spectrum (color depth)
We leaked one device context for each bpp change within the
desk.cpl-session, which gave the following logging when closing desk.cpl:
(win32ss/user/ntuser/windc.c:749) err: [00060138] GetDC() without ReleaseDC()!
1 time for each leak.
Partial backport of (#2707)
Fix picked from 0.4.15-dev-2867-g d635ce0cc0
* CORE-5823 Fix icons for toolbar and formatbar in Wordpad.
which regressed by SVN r47776 == git 5dbfbb5201
* Add wordpad_ros.diff noting toolbar.bmp and formatbar.bmp are not wine-synced
Thanks to the patches author Doug Lyons.
Fix picked from 0.4.15-dev-2862-g e068c68452
Fixes gdi32:dib / gdi32:bitmap tests and
CORE-16236 "SIMS graphics", which regressed by
SVN 51005 == git 2bbd8711a7
Thanks to the patches author Doug Lyons.
fix picked from 0.4.15-dev-2850-g 847b037fe9
This fixes some blurry icons in systray when 2k3sp2 kernel32.dll is used in ros CORE-12004
That part in user32 was a regression of SVN r71609 == git a44dfe6c76
While we are at it we do fix some other modules as well, that used those NT6+flags.
The fix was picked from 0.4.15-dev-788-g a04831677e
Fix automatic toggling of date display on second stage setup
Update comctrl from Wine with fix.
Sync datetime.c to Wine-6.0
Thanks to the patches author Doug Lyons.
fix is aquashed port of
0.4.15-dev-2796-g e382b7bc35 +
0.4.15-dev-2797-g adee5ca255
in CreateDIBPalette() when passing invalid arguments to CreateDIBSection.
This could be triggered by using the broken test-application "GDIProg".
After this patch not only the BSOD is fixed but also the app does
properly start up, like it is the case on 2k3sp2.
Thanks to the patches author Doug Lyons.
a squashed port of
0.4.15-dev-2776-g 4130f0b1c5 (compilation fix)
0.4.15-dev-2775-g c596fd3ef6 (improvement #3758)
0.4.15-dev-2734-g 514147776a (fixes the BSOD)
Revert incorrect code for Realize Palette
Revert part of SVN R50928 that causes Durak card suites to have wrong colors.
SVN r50928 == git 5de8339cd1
JIRA issue: CORE-13748 <= Durak Example
JIRA issue: CORE-16510 <= GDIProg Example
The patch also fixes 2 crashes on each bot, although
it was not targeted for that explicitly:
KVM: https://reactos.org/testman/compare.php?ids=77304,77308 LGTM
VBox: https://reactos.org/testman/compare.php?ids=77305,77309 LGTM
Thanks to the patches author Doug Lyons.
picked from 0.4.15-dev-2735-g c7954134d0
Addendum to CORE-16792
The fix is part (but not all) of CORE-17545 Fixing several Clang warnings.
Fix Clang warning:
base/setup/usetup/lang/de-DE.h:1099:24: warning: illegal character encoding in string literal [-Winvalid-source-encoding]
"die Partition <E4>ndern, die derzeit als aktiv markiert ist.",
^~~~
It regressed by 0.4.14-dev-1323-g d079342e0a
picked from 0.4.15-dev-2489-g 33c210da37
With that backport we have no affected releases left.
I am not sure why this line in id_queue.cpp was added.
I don't know how I could improve that case.
Then, disable it, for the time being.
It regressed by 4b9cf2e (r71252). CORE-12441 CORE-17371
picked from 0.4.15-dev-2740-g ba77a09c04
While touching UNIATA port back also some bm_devs.h changes:
0.4.15-dev-2739-g d65d4137d3 (8086:7111 is really PIIX4, not PIIX3)
and
0.4.15-dev-1522-g 88d36c93a2 (Properly mark ReactOS diff from upstream)
no functional change.
Make that look beautiful before porting it back further.
Addendum to 0.4.15-dev-534-g 887764e607
(CORE-17062)
picked from 0.4.15-dev-2705-g a3cadf630a
fixes BSOD 0xc0000139 STATUS_ENTRYPOINT_NOT_FOUND upon boot when
replacing just the file advapi32.dll with 2k3SP2 version 5.2.3790.3959
After adding the stub we can reach the login-screen requesting
for Ctrl+Alt+Delete.
We can properly ACPI-shutdown at this point.
picked from 0.4.15-dev-71-g 0b530fe496
MSI on 2k3sp2 hides empty CD-ROM, and hides CD-ROM with iso mounted.
MSI on 2k3sp2 hides VBox shares, both: writable and read-only-ones.
MSI on 2k3sp2 hides floppy drives with a floppy img mounted.
MSI on XPSP3 hides a mounted writable USB stick.
Thanks to the patches author Doug Lyons.
This patch supersedes
0.4.14-RC-71-g cfc24316a5 (CORE-14432)
and we are also better than Wines
0dd0d879a1
picked from 0.4.15-dev-2704-g d5265b07bb
addendum to 0.4.15-dev-1123-g 0089291751
Fix a compiler error on RosBE2.1.6 GCC4.7.2
that I got when I merged this test back to
0.4.14-RC-67-g ef623b1616
C:/0414rls/reactos/modules/rostests/apitests/shell32/ShellHook.cpp: In function
'LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)':
C:/0414rls/reactos/modules/rostests/apitests/shell32/ShellHook.cpp:339:26: error
: comparison between signed and unsigned integer expressions [-Werror=sign-compa
re]
cc1plus.exe: all warnings being treated as errors
ninja: build stopped: subcommand failed.
Fix picked from 0.4.15-dev-2662-g d30a1673d4
We decided to check a bit different than Wine currently does.
Wine checks for
if (GetVolumeInformationW(ptr, NULL, 0, NULL, 0, &flags, NULL, 0) && flags & FILE_READ_ONLY_VOLUME)
to exclude read-only-media while we (for now) check for
if (GetDriveTypeW(ptr) == DRIVE_CDROM)
For now this gives us the benefit of covering also CDROM drives, that do not have
a CD put into it.
That does not work properly for us with the Wine patch yet, but it does for Wine!
So this maybe points to some other bug in ros, maybe in our CDROM(FS)-drivers?
In the future we should also test this on other read-only-media in Windows e.g.
a read-only USB stick to decide whether we want to stick with our current solution
or whether we want to switch to Wines solution or whether we want to logically OR
both conditions!
Thanks to Doug Lyons for providing what *currently* does work best for us!
VBox https://reactos.org/testman/compare.php?ids=77537,77546 (no change)
KVM https://reactos.org/testman/compare.php?ids=77531,77541 (no change)
picked from 0.4.15-dev-2651-g 864e20b881
This is a sane addendum to 0.4.14-RC-67-g ef623b1616
by porting back the following master commits:
[WIN32SS][NTUSER] ShowWindow.SW_MINIMIZE should show window (#3700)
- user32!ShowWindow.SW_MINIMIZE should show the window.
- Fix the return value of ShowWindow function on invalid parameter.
CORE-15669
picked from 0.4.15-dev-2621-g 59d4c11203
[WIN32SS][NTUSER] Improve HSHELL_WINDOWCREATED condition (#3697)
Modify the condition of generating HSHELL_WINDOWCREATED, especially on WS_CHILD window style. CORE-15669
picked from 0.4.15-dev-2618-g 32b0cf6fc6
[USER32_APITEST] Add ShowWindow testcase (#3689)
Investigate the implementation of user32!ShowWindow. CORE-15669
picked from 0.4.15-dev-2616-g a8ed286c86
[SHELL32_APITEST] Strengthen and improve ShellHook testcase (#3687)
- Add tests to find the missing parameters against HSHELL_WINDOWCREATED conditions.
- Improve code readability. CORE-15669
picked from 0.4.15-dev-2611-g d21adc9b31
It regressed by 0.4.12-dev-1064-g 09c4d0a74b
when we tried to mute compiler warnings in the GCC Release configuration
for all modules, that do contain .y files.
In master we switched to use flex+bison to process those files at build-time
in 0.4.15-dev-2277-g 28dadda8be and at the same
time reverted the guilty rev.
In the backport to the old releases we do only revert, but do not introduce
flex+bison. This will reintroduce the warnings in GCC Release configuration.
fixes CORE-17330 'Regression, many installers that should have only 1 taskbar pane, now have 2 of them erroneously'
which was introduced by 0.4.14-dev-369-g 141cf04239
and made ros behave a lot different than previous and future releases would perform.
The main fix was picked from 0.4.15-dev-1126-g 58b0558f94 (#3294)
and the new ShellHook testcase from 0.4.15-dev-1123-g 0089291751 (#3289)
The implementation atm passes all those 384 new ShellHookTests.
Beside that it entirely fixes the very old:
CORE-13584 'Winamp 5.666 erroneously has a secret tab shown in taskbar'
But brings back:
CORE-15669 'DVD Write Now 1.5.12 SP2 setup has no taskbar pane' (which was never working in any earlier release up to now)
but which we had fixed for a very short moment in master since the guilty 0.4.14-dev-369-g 141cf04239
That alone would be no biggy, but it also unhides?/introduces? for me the new:
CORE-17338 'Can not open a context menu in the taskbar pane of Double Commander setup, instantly closes'
Well in sum it is an improvement, but we are not in urgent need of porting it back any further than 0.4.14 yet,
because older releases would only benefit from CORE-13584 'Winamp...'
Although the new layout that I committed in the previous commit
was favored by community ratings votes 8:0,
some devs still preferred the old layout with the bigger logo
because they liked the easteregg. So this commit restores
that.
But it syncs to that features latest&greatest implementation
we have in 0.4.15-dev-1685-gd0c237a instead of reverting the
previous commit to not unnecessarily have many bugs with it
that were still affecting the older releases beforehand.
Aside from the general tabs dialogs layout this commit does
also fix some minor issues in the translations for the oldest
branches in pl-PL, jp-JA, zh-CN and zh-TW.
And it fixes an x64 issue in general.c for 0.4.7 and 0.4.8.
The version string cutoff started to happen when we switched from SVN
with its short revision number to git with the longer hashes.
0.4.7-dev-502-gc2c66af was the first git-only rev (2017-Oct-03)
and brings the dialogs layout closer to XP.
Also fixes some other truncations for specific languages.
And unifies the touched text controls sizes for all languages.
The credits have been moved to readme.txt where they are more present and
we can avoid having to groom all languages files each time we want to add
a new dev (and sysdm.cpl to grow each time). Less maintenance.
sysdm.cpl binary size I18N=all
master before 925.696bytes after 705.024bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.14 before 923.136bytes after 702.464bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.13 before 904.192bytes after 684.544bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.12 before 881.664bytes after 665.600bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.11 before 836.096bytes after 618.496bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.10 before 806.912bytes after 588.800bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 9 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 8 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 7 before 788.992bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
readme.txt still fits into a single NTFS cluster afterwards with 3702bytes
Also a very! soft update of some translations ported back.
"Let's encrypt" certificate issuer string changed within last 24hours remotely.
Update its name to make RAPPS stop complaining on DB update.
And also fix a bug in rapps mixing A()/W() in the
messagebox that informs about that cert check failure.
Fix is port of
0.4.15-dev-1120-g 12caaece25
0.4.15-dev-1617-g f77f5a30cf
Next time this happens I will relentlessly undefine CMakeLists.txt USE_CERT_PINNING
flip_fix_9.patch fixes:
CORE-16984 " 'SPINA Thrulg' / 'SPINA Thyr' / 'Sim Thyr' have images flipped"
CORE-17194 "StretchDIBits test" isn't work correctly"
"Output of 'Project 3 Test'"
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
CORE-14671 "'Peazip' shows icons in buttons and menubar vertically flipped"
"Double Commander shoes icons flipped in buttons, menubar, listview and the treeview"
CORE-13273 "Welcome to Lazarus" icon shows flipped
CORE-13026 "'CudaText app' icon shows flipped"
Not all of those are duplicates, although they appear to be at first glance.
It affects different controls and some of those tickets do have different 'guilty revs' than others.
The patch does consist of 3 parts:
1.) win32ss/gdi/ntgdi/dibobj.c
This one is the most clean part of it, that addresses most of the flipping issues now.
2.) The hack in comctl32.h redefining the version:
We used that in the past to appease some, but not all of the issues listed above.
But it does hide additional issues, e.g. in DvDStyler, therefore we seem to still need that appeasement even today.
Most likely it would make sense to aim to avoid this part in the future.
part 2.) was committed as first appeasement on its own already into
0.4.14-RC-24-g 198b61e
0.4.13-RC-7-g 67211fa
0.4.12-RC-5-g 8449527
0.4.11-RC-16-g b906163
0.4.10-RC-7-g f1e80fe
0.4.9-RC-34-g 9d758ae
3.) toolbar.c change
That part fixes at least the toolbar case for DvDStyler
without relying on the comctl32.h hack any longer,
but it was still not enough to completely get rid of part 2.) yet.
Many thanks to all contributors: 'I_kill_Bugs', Doug Lyons and also 'Julenuri' for testing.
The patch gave nice testbot results:
KVM: https://reactos.org/testman/compare.php?ids=75704,75714
VBox: https://reactos.org/testman/compare.php?ids=75705,75715
and we also created a summary of manual test-results:
https://jira.reactos.org/browse/CORE-17415?focusedCommentId=126668&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-126668
If you read this comment via git blame and your goal is to get rid of the hack in comctl32.h, I would highly recommend
to redo the tests of that testing table, and if that is asked too much, then please test at least the following cases:
CORE-14701 "DVDStyler 3.0.4 transparent toolbars"
CORE-14701 "DVDStyler 3.0.4 erroneously black around icons of welcome-dlg"
"DVDStyler 3.0.4 erroneously black/transparent within comboboxes of properties of VMGM menu"
and try to add what might be needed to fix them, and double-check again:
"DoubleCommander optionsDlg the most complex testcase, contains flip-prone icons in treeview, listview, menubar, buttons, statics". Only some of its flipped icons were impacted by the comctl32.h change before.
fix picked from 0.4.15-dev-1603-g 232c45fcd7
I double-checked and although the crash in Motorbike does *not* happen by default in all of those builds:
0.4.14-RC-54-g6a6672d (hidden by opt-in apisets-default in release branch)
0.4.13-release-1-g2ac9d98 (hidden by opt-in apisets-default in release branch)
0.4.12-release-17-g79780cd (hidden also, I don't understand why)
0.4.11-release-28-gc4d930d (hidden also, I don't understand why)
0.4.10-release-35-g94b4a3e (hidden also, I don't understand why)
0.4.9-release-41-gd3a79fe (hidden also, I don't understand why)
0.4.8-release-46-gd4d58d7 (hidden, does not have apisets yet)
0.4.7-release-56-g835b508 (hidden, does not have apisets yet)
It was really only crashing in master.
I decided to port the proper fix back nevertheless, because:
- the exports are wrong for our target
- I can not guarantee otherwise that it would not pop up all of a sudden later
- and the fix also decreases the binary size of that apiset.
Fix picked from 0.4.15-dev-179-g 02825c20e4
Allows to complete the whole 'ninja bootcd' after 'configure -DCMAKE_BUILD_TYPE=Release'
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6
Similar to the fix committed in 0.4.15-dev-1453-g 4ad7b6d
"cl : Command line error D8016 : '/Ox' and '/RTC1' command-line options are incompatible"
in MSVC builds with Release Configuration
Addendum to 0.4.14-dev-1373-g 92dfec219d
fix picked from commit 0.4.15-dev-1186-g a2a6038e56
CORE-17312
Hide everything under the same foreground & background colors, so that
the actual color and text blanking reset does not create a visual "blinking".
Then, blank the text and finally reset the actual foreground &
background colors.
We do this because we cannot do the screen scrolling trick that would
allow to change both the text and the colors at the same time (the
function is currently not available in our console "emulation" layer).
The issue was unhidden when we introduced the red progress bar in
0.4.11-dev-111-g e5c0bfacf1
Fix picked from 0.4.15-dev-1078-g 434fa562ce
This fixes the ReactOS Calculator buttons disappearing in CORE-16827
It once regressed by 0.4.13-dev-221-g
2161dd85dc
which did aim to fix CORE-15934.
Noteworthy that releases/0.4.12 was never affected although I fixed CORE-15934
there as well, but *not* with the fix that went into master later!
fix picked from commit 0.4.15-dev-1197-g
8081ba9332
Those 2 did spam heavily when browsing folders with
many .zip files within. Mark Jansen confirmed that
this is good-path-logging and was just forgotten
to be disabled earlier. They were introduced by 0.4.14-RC-16-g
e13ff4aeb8
fix picked from commit 0.4.15-dev-628-g
f363c27ab4
which means we have no affected release branches left anymore.