mirror of
https://github.com/reactos/reactos.git
synced 2024-06-21 13:31:38 +00:00
[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-g3377fe184e
But we unintentionally lost these changes via 0.4.12-RC-26-g486fd83a95
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-g0e4db883e5
and 0.4.13-dev-712-g64e182e429
This commit is contained in:
parent
ca0e00e8af
commit
9dde283e9a
|
@ -5678,7 +5678,7 @@ IntExtTextOutW(
|
|||
IntLPtoDP(dc, (POINT *)lprc, 2);
|
||||
}
|
||||
|
||||
if (pdcattr->lTextAlign & TA_UPDATECP)
|
||||
if (pdcattr->flTextAlign & TA_UPDATECP)
|
||||
{
|
||||
Start.x = pdcattr->ptlCurrent.x;
|
||||
Start.y = pdcattr->ptlCurrent.y;
|
||||
|
@ -5800,9 +5800,9 @@ IntExtTextOutW(
|
|||
* Process the vertical alignment and determine the yoff.
|
||||
*/
|
||||
#define VALIGN_MASK (TA_TOP | TA_BASELINE | TA_BOTTOM)
|
||||
if ((pdcattr->lTextAlign & VALIGN_MASK) == TA_BASELINE)
|
||||
if ((pdcattr->flTextAlign & VALIGN_MASK) == TA_BASELINE)
|
||||
yoff = 0;
|
||||
else if ((pdcattr->lTextAlign & VALIGN_MASK) == TA_BOTTOM)
|
||||
else if ((pdcattr->flTextAlign & VALIGN_MASK) == TA_BOTTOM)
|
||||
yoff = -(fixDescender >> 6);
|
||||
else /* TA_TOP */
|
||||
yoff = fixAscender >> 6;
|
||||
|
@ -5815,7 +5815,7 @@ IntExtTextOutW(
|
|||
* Process the horizontal alignment and modify XStart accordingly.
|
||||
*/
|
||||
DxShift = fuOptions & ETO_PDY ? 1 : 0;
|
||||
if (pdcattr->lTextAlign & (TA_RIGHT | TA_CENTER))
|
||||
if (pdcattr->flTextAlign & (TA_RIGHT | TA_CENTER))
|
||||
{
|
||||
ULONGLONG TextWidth = 0;
|
||||
LPCWSTR TempText = String;
|
||||
|
@ -5901,7 +5901,7 @@ IntExtTextOutW(
|
|||
|
||||
previous = 0;
|
||||
|
||||
if ((pdcattr->lTextAlign & TA_CENTER) == TA_CENTER)
|
||||
if ((pdcattr->flTextAlign & TA_CENTER) == TA_CENTER)
|
||||
{
|
||||
RealXStart -= TextWidth / 2;
|
||||
}
|
||||
|
@ -6301,7 +6301,7 @@ IntExtTextOutW(
|
|||
}
|
||||
}
|
||||
|
||||
if (pdcattr->lTextAlign & TA_UPDATECP) {
|
||||
if (pdcattr->flTextAlign & TA_UPDATECP) {
|
||||
pdcattr->ptlCurrent.x = DestRect.right - dc->ptlDCOrig.x;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue