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
68edc995
Commit
68edc995
authored
Apr 23, 2015
by
Nikolay Sivov
Committed by
Alexandre Julliard
Apr 23, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dwrite: Set some more cluster properties.
parent
4c41f2bb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
4 deletions
+18
-4
layout.c
dlls/dwrite/layout.c
+18
-4
No files found.
dlls/dwrite/layout.c
View file @
68edc995
...
...
@@ -377,6 +377,7 @@ static inline void init_cluster_metrics(const struct dwrite_textlayout *layout,
UINT16
start_glyph
,
UINT16
stop_glyph
,
UINT32
stop_position
,
DWRITE_CLUSTER_METRICS
*
metrics
)
{
UINT8
breakcondition
;
UINT32
position
;
UINT16
j
;
metrics
->
width
=
0
.
0
;
...
...
@@ -384,16 +385,29 @@ static inline void init_cluster_metrics(const struct dwrite_textlayout *layout,
metrics
->
width
+=
run
->
run
.
glyphAdvances
[
j
];
metrics
->
length
=
0
;
position
=
stop_position
;
if
(
stop_glyph
==
run
->
run
.
glyphCount
)
breakcondition
=
get_effective_breakpoint
(
layout
,
stop_position
).
breakConditionAfter
;
else
else
{
breakcondition
=
get_effective_breakpoint
(
layout
,
stop_position
).
breakConditionBefore
;
if
(
stop_position
)
position
=
stop_position
-
1
;
}
metrics
->
canWrapLineAfter
=
breakcondition
==
DWRITE_BREAK_CONDITION_CAN_BREAK
||
breakcondition
==
DWRITE_BREAK_CONDITION_MUST_BREAK
;
metrics
->
isWhitespace
=
FALSE
;
/* FIXME */
metrics
->
isNewline
=
FALSE
;
/* FIXME */
metrics
->
isSoftHyphen
=
FALSE
;
/* FIXME */
if
(
metrics
->
length
==
1
)
{
WORD
type
;
GetStringTypeW
(
CT_CTYPE1
,
&
layout
->
str
[
position
],
1
,
&
type
);
metrics
->
isWhitespace
=
type
==
C1_SPACE
;
metrics
->
isNewline
=
FALSE
/* FIXME */
;
metrics
->
isSoftHyphen
=
layout
->
str
[
position
]
==
0x00ad
/* Unicode Soft Hyphen */
;
}
else
{
metrics
->
isWhitespace
=
FALSE
;
metrics
->
isNewline
=
FALSE
;
metrics
->
isSoftHyphen
=
FALSE
;
}
metrics
->
isRightToLeft
=
run
->
run
.
bidiLevel
&
1
;
metrics
->
padding
=
0
;
}
...
...
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