Commit graph

363 commits

Author SHA1 Message Date
Joachim Henze 9286a1fe0c [0.4.12][WIN32SS] WindowSnap must not affect the taskbar
This fixes regression CORE-16289 where we could not longer
move the taskbar at a different than default location,
as WindowSnap would interfere.

Many Thanks to the patches author Doug Lyons.

Eventually the heuristic that we use here to identify the
taskbar via used window-styles could be improved later.
Theoretically possible that it bails out on some other windows.

The regression was introduced by 0.4.12-dev-373-g
7e396787ed

patch is a backport from master 0.4.13-dev-962-g
4193b8d8ac
2019-08-20 12:11:36 +02:00
Joachim Henze d52cac4ca1 [0.4.12][WIN32SS] MENU_ShowPopup() We chicken out for this rls still
as the release data is close and we have to manage the risk.
This reverts last commit and all menu related code back to the state of
0.4.12-dev-369-g
007ec0310c

Although Mark Jansen seems to be on a very promising path in master,
we still revert one last time for this release to the more well known
state we had during 0.4.12dev'ing.

This will fix regressions CORE-16298, CORE-16297
and will keep CORE-15863 in fixed state.
Systray and nested desktop popups do work very well like this.

We therefore intentionally and willingly have to accept the broken
partial-offscreen-menus of CORE-15733.
Those are not as important as the other tickets.

Meanwhile we keep on improving master based on the more recent states.
2019-08-07 23:07:33 +02:00
Joachim Henze 3113d13793 [0.4.12][WIN32SS] Improve MENU_ShowPopup()
to fix regression CORE-15863
This is the work that Mark jansen committed into master
0.4.13-dev-791-g
a59df3858c
and
0.4.13-dev-792-g
7c45a646e9
and
0.4.13-dev-793-g
b5c6af459c

squashed into one single commit for 0.4.12RC.

It's not perfect yet anymore for positioning the
popup for systray icons if they contain many entries.
And also not perfect when pressing the context menu key
on desktop after a .lnk has been started,
but overall gives a better user-experience for nested popups
on the desktop, which is much more important.
We can build up on top of it later in master.
2019-08-06 21:48:35 +02:00
Joachim Henze 9dde283e9a [0.4.12][WIN32SS] Fix regression of font alignment CORE-16133
This fixes fonts not being displayed properly within an edit in
Precise Calculator application.

Jim Tabor intended to structurally use flTextAlign over
lTextAlign internally within IntExtTextOutW().
He initially committed these changes in 0.4.12-dev-805-g
3377fe184e

But we unintentionally lost these changes via 0.4.12-RC-26-g
486fd83a95

Many thanks to Doug Lyons who helped a lot with fixing CORE-16133.

We also corrected this issue in master via 0.4.13-dev-707-g
0e4db883e5 and 0.4.13-dev-712-g
64e182e429
2019-07-27 10:09:13 +02:00
Joachim Henze 6f651b6ec5 [0.4.12][WIN32SS] Workaround Marlett drawing for Window close buttons CORE-16125
It regressed for RC by 0.4.12-RC-16-g
e1ac9dcd66

and for master by 0.4.13-dev-110-g
19fc9415bf

Thanks to Katayama Hirofumi MZ, the workarounds author.
We think it is a workaround, so we will not commit to master.

Testbot runs (executed on master) seem to be non-alarming
VBox https://reactos.org/testman/compare.php?ids=68471,68479
KVM https://reactos.org/testman/compare.php?ids=68472,68480
2019-07-08 00:05:00 +02:00
Joachim Henze 021f498cb2 [0.4.12][WIN32SS][FREETYPE] Fix performance regression FreeBASIC console output CORE-16177
By restoring historic state of GreExtTextOutW() / IntExtTextOutW()

This reverts guilty rev 0.4.12-dev-190-g
d6cfeaef51
as well as some follow ups that dealt with new errors popping up afterwards.
The revert got ack of Katayama Hirofumi MZ.

Test VBox on master: https://reactos.org/testman/compare.php?ids=68471,68475
Test KVM on master: https://reactos.org/testman/compare.php?ids=68472,68476

I intend to restore the function to that same state in master today.
2019-07-07 18:21:19 +02:00
Hermès Bélusca-Maïto f9b51388b8 [0.4.12][GDI32] Do not 'hard-assert' during the font-unit-test
The goal of this is to revive the VBox-testbot that failed miserably
like the VBox-one in
https://build.reactos.org/#/builders/9/builds/24947
all the way through the 0.4.12RCs, because 0.4.12-dev was in a poor state
upon branching.

cherry picked from commit 0.4.13-dev-23-g
7334567211
2019-07-03 01:12:03 +02:00
Katayama Hirofumi MZ d5c85cd522 [0.4.12][WIN32SS][NTGDI] usWinAscent and usWinDescent must be treated as signed (#1670)
TT_OS2.usWinAscent and TT_OS2.usWinDescent must be treated as FT_Short.
These values affect font metrics.
This PR will fix CORE-14994 that regressed by 0.4.10-dev-466-g
35f62fc5ba

cherry picked from commit 0.4.13-dev-483-g
641a0ea99b
2019-06-21 20:59:45 +02:00
Joachim Henze ec3cc13ab0 [0.4.12][WIN32K:ENG] Fix fullscreen switch regressions CORE-15325 & CORE-14684 PR#1659
In PDEVOBJ_vRefreshModeList, find a proper match for the current
display mode instead of assuming a constant index.

Both tickets regressed by SVN r74404
384affe098

Many thanks to the patches author Thomas Faber.

cherry picked from commit 0.4.13-dev-456-g
00e882c2b1
2019-06-16 13:07:55 +02:00
Joachim Henze ab7f77a021 [WIN32SS][NTUSER] Addendum to 0.4.12-dev-956-g0197c4f CORE-15893
Aims PixelPerfection for a regression that was introduced by
0.4.12-dev-954-g
1f619b2781

and then improved already by
0.4.12-dev-956-g
0197c4f875

The tweaking got ack of Jim Tabor. Test results:
https://reactos.org/testman/compare.php?ids=68026,68029

cherry-picked from 0.4.13-dev-397-g
3cc50cedaf
2019-06-10 15:38:23 +02:00
Joachim Henze 486fd83a95 [0.4.12][WIN32SS][FREETYPE] Avoid performance regression CORE-16020
by reverting essential parts of "Font rotation at arbitrary angles"
which was once committed in several steps:

Initial commit (PR#1207)
0.4.12-dev-243-g
f757a13519
broke font rendering for GTK apps CORE-15623

Second commit (PR#1238)
0.4.12-dev-558-g
64987cf273
restored font rendering in GTK apps but introduced slowdown CORE-16020

Katayama agreed to the temporal revert and will try to come up later
with a performance optimized version.
We revert in 0.4.12-RC and 0.4.13-dev.

The revert will cause failure-increases in gdi32:TextTransform.
2019-06-06 02:21:36 +02:00
Joachim Henze c7fadfadfb [0.4.12][WIN32SS] Revert "Make App Switcher use the owner window's icon (#1299)"
to protect our latest improvement of showing correct cpl icons in taskswitch
CORE-16086

This reverts commit
0.4.12-dev-437-g
484943d04f
which was done in context of CORE-15672
(without being able to resolve that ticket)
0.4.12-dev-437 contrasts our latest information c.f. Raymond Chen's article:
http://blogs.msdn.com/b/oldnewthing/archive/2007/10/08/5351207.aspx
Eventually we should select the icon instead using that same algorithm.
2019-06-02 23:50:06 +02:00
Joachim Henze 14b5195cc5 [0.4.12] [WIN32SS][NTGDI] Fix regression BSOD in QIP CORE-16059 and similar BSODs by avoiding FLOAT in kernel
This is a squashed backmerge of
PR1572 FLOAT in IntEscapeMatrix
0.4.13-dev-255-g
0137096449

PR1574 FLOAT for orientation
0.4.13-dev-257-g
fabbd7c1c1

PR1576 FLOAT in ftGdiGetGlyphOutline
0.4.13-dev-270-g
86046a9bf4

Those 3 commits were part of CORE-15838.
All those regressions have been introduced during 0.4.12-dev'ing.
2019-05-27 20:22:53 +02:00
Joachim Henze a112b89ed5 [0.4.12] [NtUser] Apply review of jimtabor
to the workaround in last commit 0.4.12-RC-19-g
700779e643

Many thanks to reviewer jimtabor for this very prompt review!

I tested, the new state still succeeds in CORE-15477, CORE-14979, CORE-15599, CORE-15600, CORE-15654

Fixes 'multiple apps leaving the taskbar visible erroneously when switching into fullscreen.'
Please note that the problem with taskbar staying visible is only fixed for some, but not all apps
(see CORE-11242 for some still failing examples, e.g: Bound Around).

We now have the same state in 0.4.12RCs, that we just have committed to master in 0.4.13-dev-247-g
0f29b3faa7
2019-05-22 00:30:10 +02:00
Joachim Henze 700779e643 [0.4.12] [NtUser] Workaround regressions CORE-15477, CORE-14979, CORE-15599, CORE-15600, CORE-15654
Fixes 'multiple apps leaving the taskbar visible erroneously when switching into fullscreen.'
Please note that the problem with taskbar staying visible is only fixed for some, but not all apps (see CORE-11242 for examples).

This partially reverts commit 09ab5ea7ed (SVN r75407)
I applied this interim solution into 0.4.12RCs for the very first time and rls-tests still
have to prove it being free of obvious side-effects.
Theoretically we could still switch to a better solution at any time.
The workaround never was applied to master to date.

https://reactos.org/testman/compare.php?ids=67536,67539
2019-05-21 22:51:45 +02:00
jimtabor 3e71805ae1 [0.4.12] [NtUser] Fix Theme Non Client Painting, fixes the visible parts of regression CORE-15934
Resizing a themed window does not longer show a flashing rectangle in the title-bar after the fix.

Still this seems to be work-in-progress even after this first commit, but makes me happy for 0.4.12RCs
for now.

See CORE-7166 & CORE-15934.

cherry picked from commit 0.4.13-dev-8-g
cfdf36e442
2019-05-10 01:45:37 +02:00
Katayama Hirofumi MZ e1ac9dcd66 [0.4.12] [WIN32SS][NTGDI] FireFox checkmark, fixes regression CORE-15303 (#1535)
The font size was a bit larger than expected.
FireFox will show checkmarks correctly in View menu.

This is a partial revert of 0.4.10-dev-466-g
35f62fc5ba

cherry picked from commit 0.4.13-dev-110-g
19fc9415bf
2019-05-10 00:11:49 +02:00
Katayama Hirofumi MZ 12fc3687b8 [0.4.12] [WIN32SS][NTGDI] CORE-15755 commit 3 of 3
Delete unnecessary (ULONG) cast

cherry picked from commit 0.4.13-dev-11-g
983cd57c1e
2019-05-09 22:23:28 +02:00
Katayama Hirofumi MZ 264c790160 [0.4.12] [GDI32][NTGDI] Avoid integer overflow CORE-15755 commit 2 of 3
Follow up of #1492. CORE-15755
- Use RtlULongMult function to check integer overflows.

cherry picked from commit 0.4.13-dev-10-g
bc9f3ed887
2019-05-09 22:21:58 +02:00
Katayama Hirofumi MZ 8d3def0529 [0.4.12] [GDI32][NTGDI][SETUP] CORE-15755 commit 1 of 3
Fix font enumeration part 2 (#1492)

Eliminate some bugs about font enumeration.

- Add "Microsoft Sans Serif" font substitution.
- Fix and improve the treatment of the nominal font names.
- Split IntGetFontFamilyInfo function from NtGdiGetFontFamilyInfo.
- Add DoFontSystemUnittest function for font system unittest to GDI32.
- Call DoFontSystemUnittest function at CreateFontIndirectW first call.

cherry picked from commit 0.4.13-dev-9-g
811faed421
2019-05-09 22:20:55 +02:00
Katayama Hirofumi MZ dea7149597 [0.4.12] [WIN32SS][NTGDI] Keep FontSubstitutes enumeration CORE-15785 (#1532)
Fixes regression CORE-15785.
When LOGFONT.lfFaceName[0] == 0, then enumeration of font substitutes had failed.

CORE-15785 commit 2 of 2

cherry picked from commit 0.4.13-dev-107-g
ae8417fd90
2019-05-09 20:59:46 +02:00
Katayama Hirofumi MZ 5c2e810dca [0.4.12] [GDI32] Improve IntFontFamilyListUnique function (#1491)
Make gdi32!IntFontFamilyListUnique function std::unique compatible.
Previous code didn't set the first entry correctly.

CORE-15785 commit 1 of 2

cherry picked from commit 0.4.13-dev-5-g
ae80eb824e
2019-05-09 20:52:37 +02:00
Joachim Henze 5ac548544f [0.4.12] [WIN32SS] Appease regression CORE-15429 & fix CORE-15911
By applying for the first time clientFix.patch from CORE-15911 contributed by JIRA-user 'I_Kill_Bugs'.

The patch acts as a better replacement for a workaround of DougLyons from CORE-15429
that aimed to hide the issue for our file-browser only.

The new approach gave good results for the testbots
https://reactos.org/testman/compare.php?ids=66723,66729
but wasn't tested much yet. In case it causes any problems during testing-cycle,
I might eventually switch back to our old workaround instead from the last releases.
2019-04-15 19:46:36 +02:00
Thomas Faber d01ba95cbd [0.4.12] [WIN32SS] Mask WndProc exceptions to hide all tickets linked to CORE-11915
e.g. this allows using MsDepends
Unfortunately still necessary, luckily still effective

like in last release
cherry picked from commit bca25b10b4
2019-04-09 16:33:14 +02:00
Maxim Smirnov ffb4b674c7 [FONT] Fix FontSmoothing 2019-04-07 01:42:29 +02:00
Jérôme Gardou e24182f8c0 [GDI32] Use correct dependenxy for the winegdi library 2019-04-06 17:43:38 +02:00
Jérôme Gardou 23373acbb9 [CMAKE] Use modules instead of shared libraries
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.

On my system, this reduces the configure-time by a factor of two.
2019-04-06 17:43:38 +02:00
Adam Słaboń 7047aa80ef [TRANSLATION] Polish translation update
Polish translation update for calc, fltmc, magnify, notepad, osk, sndvol32, usetup, fdebug, appwiz, mmsys, sysdm, acppage, ziplfdr, browseui, cryptui, jscript, shell32, themeui and inf. Added translation for cyrptext, vcdcontroltool, and (not yet complete) getuname.
2019-04-05 10:34:10 +02:00
Katayama Hirofumi MZ 635534005b
[WIN32SS][FONT] Fix font coordinate conversion CORE-15907 (#1452)
[WIN32SS][FONT] Fix font bounding box mapping for viewport CORE-15907
2019-04-02 22:39:26 +09:00
Hervé Poussineau 0c4d21a5a1 Revert "[DXG] Define GUIDs only once", to fix MSVC build
This reverts commit 3a78dd4b31.
2019-04-01 18:00:59 +02:00
Hervé Poussineau 3a78dd4b31 [DXG] Define GUIDs only once 2019-04-01 11:38:32 +02:00
jimtabor 2f5c0ee0a9 [NtGdi] Fix assert with Winamp
Fixes CORE-10774.

Reference:
Alexandre Julliard : Ignore empty rectangles in ExtCreateRegion.
8ac61c5a1e
2019-03-31 13:31:59 -05:00
Bișoc George bd5fb32b79 [COVERITY][SPOOLSS] Fix a resource leak
Unload the library pointed by hWinspool when the function fails.

CID 1401149
2019-03-31 20:09:42 +02:00
jimtabor 0197c4f875 [NtUser] Fix maximizing to window edge
Cover up the edge of the frame while maximizing the window to desktop.
Fixes CORE-15893.
2019-03-27 17:39:04 -05:00
jimtabor 1f619b2781 [Win32SS] Fix maximized window positioning.
Fix CORE-5177 TaskMgr and ProcExp possionong when maximized.
2019-03-26 15:56:57 -05:00
Stanislav Motylkov 36230bb214 [USER32] Edit: Fix caret and scroll position
Based on patch by JIRA contributor 'I_Kill_Bugs'. CORE-15780
2019-03-24 23:26:20 +01:00
Hermès Bélusca-Maïto 048c8c1605
[USER32] Add support for navigating a group of radio buttons using a keyboard.
Import Wine commit:
b1b8fb77be

"user32: Add support for navigating a group of radio buttons using a keyboard.
The patch approximates the behaviour observed in the message tests
but still doesn't make the message tests pass without failures.
"
by Dmitry Timoshkov.
See bug report https://bugs.winehq.org/show_bug.cgi?id=16845
2019-03-24 17:23:33 +01:00
Hermès Bélusca-Maïto 780f2ba215
[USER32][COMCTL32] Move the auto radio button group logic from BM_SETCHECK to WM_LBUTTONUP handler.
CORE-8526

Import Wine commit:
96d0af52eb

"user32: Move the auto radio button group logic from BM_SETCHECK to WM_LBUTTONUP handler.
This patch also changes the logic to get the control style with WM_GETDLGCODE
instead of GetWindowLong to make the message test pass.
"
by Dmitry Timoshkov.
See bug report https://bugs.winehq.org/show_bug.cgi?id=42010

- (ReactOS-only) Fix also the corresponding logic in COMCTL32.
2019-03-24 17:23:24 +01:00
Baruch Rutman 7143e411c4
[GDI32] Integrate LpkGetTextExtentExPoint(). (#1362)
- Assume that GetTextExtentExPointWPri() uses the same kind of
  arguments as GetTextExtentExPointW().

- Add GetTextExtentExPointWPri() declaration to undocgdi.h.
2019-03-23 23:34:09 +01:00
Stanislav Motylkov 40dab7d5e5 [USER32] Edit: Fix rectangle overflow when inserting characters
Based on patch by JIRA contributor 'I_Kill_Bugs'. CORE-11475
2019-03-23 15:52:43 +01:00
jimtabor 68df5a50e6 [NtUser] Support SWP_FRAMECHANGED
Implement SWP_FRAMECHANGED support for non-changing window to force a
redraw.

Patch dedicated to Katayama Hirofumi MZ.
2019-03-18 17:28:33 -05:00
James Tabor b4624f32f3 [GDI32] Fix issue after a Flush
While flushing the DC handle goes down with the flush. This was not a
regression, just untested old code.
2019-03-14 12:00:53 -05:00
Hermès Bélusca-Maïto 0e56ec8892
[WIN32SS:NTGDI] Fix missing text in labels and buttons for .NET apps. CORE-15000
There was a missing break statement in ftGdiGetGlyphOutline().
Found by JIRA contributor 'I_Kill_Bugs' :-)

Add also brackets around 'case's to make code navigation easier.
2019-03-14 01:36:45 +01:00
jimtabor bc534efbc5 [User32] Support WM_COPYGLOBALDATA
Implement support for WM_COPYGLOBALDATA. Needs more tests.

Tested DropTest from CORE-15836.
2019-03-13 12:16:52 -05:00
Joachim Henze 76118320ea Revert "[FREETYPE] Fix 3 regressions in one patch"
This reverts commit 0.4.12-dev-856-g
98b7ecd280
CORE-15785, CORE-15558, CORE-15755.

As requested by Pierre, we have very strong indication, that it broke
https://build.reactos.org/builders/Test%20KVM and
https://build.reactos.org/builders/Test%20VBox
2019-03-12 18:57:21 +01:00
Joachim Henze 98b7ecd280 [FREETYPE] Fix 3 regressions in one patch
Fixes regression CORE-15785 (Zim Desktop Wiki 0.67 crashed) and
Fixes regression CORE-15755 (NLite 1.4.9.3 used wrong font)

without reintroducing regression CORE-15558 (AbiWord 2.6.8 font enumeration)

This is achieved by partial revert of
0.4.12-dev-320-g
6e4e5a004c
and got ack of Katayama Hirofumi MZ.

Thanks to patches author Doug Lyons.
Test-results: https://reactos.org/testman/compare.php?ids=66264,66267
2019-03-11 20:10:14 +01:00
Timo Kreuzer ba893e1172 [WIN32K] Keep a reference on an ETHREAD while THREADINFO exists 2019-03-10 11:14:40 +01:00
James Tabor d57f7becc3 [Win32SS] Add TextOut to GDI Batch
Add fix ups to PolyPatBlt and freetype.
TextOut supports 580 characters w/o Dx and Dx at a max of 193 characters
with Dx*1, both if offset is 0.

Noticed a lot of over drawing with start menu from ComCtl32 SB_SETTEXT
going through User32 DrawText/Worker ExtTextOutW. Explain why it might
be slowing down.

If issues arise, commenting out lines in win32ss/include/gdi32p.h can
help.

Example:
else if (Cmd == GdiBCTextOut) cjSize = 0;//sizeof(GDIBSTEXTOUT); <----
this one most of all.
 else if (Cmd == GdiBCExtTextOut) cjSize = 0;//sizeof(GDIBSEXTTEXTOUT);

Test results:
https://reactos.org/testman/compare.php?ids=66260,66262
2019-03-08 22:21:41 -06:00
James Tabor f35bb6e4c8 [NtGDI] Fix crash and simplify code.
Revert previous changes. simplify rendering check.
Fix missed unlocking which caused a crash.
2019-03-05 17:05:23 -06:00
James Tabor 3377fe184e [NtGDI] Change TextOut
Separate TextOut for internal use.
Use flTextAlign internally.
Not sure why GetDeviceCap was used for determining rendering. SVN commit
logs are unavailable. Include code from wine that might make more sense.
2019-03-05 16:03:15 -06:00