Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
4b2777db
Commit
4b2777db
authored
Aug 24, 2021
by
Zhiyi Zhang
Committed by
Alexandre Julliard
Aug 24, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
uxtheme: Support TrueSizeStretchMark property.
Signed-off-by:
Zhiyi Zhang
<
zzhang@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0d96bf1f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
15 deletions
+10
-15
draw.c
dlls/uxtheme/draw.c
+10
-15
No files found.
dlls/uxtheme/draw.c
View file @
4b2777db
...
...
@@ -579,7 +579,7 @@ static HRESULT get_image_part_size (HTHEME hTheme, HDC hdc, int iPartId,
{
case
TS_DRAW
:
{
int
sizingType
=
ST_STRETCH
,
scalingType
=
TSST_NONE
;
int
sizingType
=
ST_STRETCH
,
scalingType
=
TSST_NONE
,
stretchMark
=
0
;
POINT
srcSize
;
srcSize
.
x
=
rcSrc
.
right
-
rcSrc
.
left
;
...
...
@@ -589,10 +589,13 @@ static HRESULT get_image_part_size (HTHEME hTheme, HDC hdc, int iPartId,
if
(
sizingType
==
ST_TRUESIZE
)
{
GetThemeEnumValue
(
hTheme
,
iPartId
,
iStateId
,
TMT_TRUESIZESCALINGTYPE
,
&
scalingType
);
GetThemeInt
(
hTheme
,
iPartId
,
iStateId
,
TMT_TRUESIZESTRETCHMARK
,
&
stretchMark
);
if
(
scalingType
==
TSST_DPI
)
{
/* Scale to DPI only if the destination DPI exceeds the source DPI by
* stretchMark percent */
dstDpi
=
GetDeviceCaps
(
hdc
,
LOGPIXELSY
);
if
(
dstDpi
&&
dstDpi
!=
imageDpi
)
if
(
dstDpi
&&
dstDpi
!=
imageDpi
&&
MulDiv
(
100
,
dstDpi
,
imageDpi
)
>=
stretchMark
+
100
)
{
srcSize
.
x
=
MulDiv
(
srcSize
.
x
,
dstDpi
,
imageDpi
);
srcSize
.
y
=
MulDiv
(
srcSize
.
y
,
dstDpi
,
imageDpi
);
...
...
@@ -620,19 +623,11 @@ static HRESULT get_image_part_size (HTHEME hTheme, HDC hdc, int iPartId,
if
(
sizingType
==
ST_TRUESIZE
)
{
int
truesizestretchmark
=
100
;
/* Whatever TrueSizeStretchMark does - it does not seem to
* be what's outlined below. It appears as if native
* uxtheme always stretches if dest is smaller than source
* (ie as if TrueSizeStretchMark==100 with the code below) */
#if 0
/* Only stretch when target exceeds source by truesizestretchmark percent */
GetThemeInt(hTheme, iPartId, iStateId, TMT_TRUESIZESTRETCHMARK, &truesizestretchmark);
#endif
if
(
scalingType
==
TSST_SIZE
||
dstSize
.
x
<
0
||
dstSize
.
y
<
0
||
(
MulDiv
(
srcSize
.
x
,
100
,
dstSize
.
x
)
>
truesizestretchmark
&&
MulDiv
(
srcSize
.
y
,
100
,
dstSize
.
y
)
>
truesizestretchmark
))
if
((
dstSize
.
x
<
0
||
dstSize
.
y
<
0
)
||
(
dstSize
.
x
<
srcSize
.
x
&&
dstSize
.
y
<
srcSize
.
y
)
||
(
scalingType
==
TSST_SIZE
&&
MulDiv
(
100
,
dstSize
.
x
,
srcSize
.
x
)
>=
stretchMark
+
100
&&
MulDiv
(
100
,
dstSize
.
y
,
srcSize
.
y
)
>=
stretchMark
+
100
))
{
*
psz
=
dstSize
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment