projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge "Update position & size of web view." into devel/master
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
text
/
rendering
/
view-model.cpp
diff --git
a/dali-toolkit/internal/text/rendering/view-model.cpp
b/dali-toolkit/internal/text/rendering/view-model.cpp
index
c79dbd4
..
0e8dc61
100755
(executable)
--- a/
dali-toolkit/internal/text/rendering/view-model.cpp
+++ b/
dali-toolkit/internal/text/rendering/view-model.cpp
@@
-307,7
+307,7
@@
void ViewModel::ElideGlyphs()
// Need to reshape the glyph as the font may be different in size.
const GlyphInfo& ellipsisGlyph = fontClient.GetEllipsisGlyph( fontClient.GetPointSize( glyphToRemove.fontId ) );
// Need to reshape the glyph as the font may be different in size.
const GlyphInfo& ellipsisGlyph = fontClient.GetEllipsisGlyph( fontClient.GetPointSize( glyphToRemove.fontId ) );
- if( !firstPenSet ||
glyphToRemove.advance == 0.f
)
+ if( !firstPenSet ||
EqualsZero( glyphToRemove.advance )
)
{
const Vector2& position = *( elidedPositionsBuffer + index );
{
const Vector2& position = *( elidedPositionsBuffer + index );
@@
-324,7
+324,10
@@
void ViewModel::ElideGlyphs()
removedGlypsWidth = -ellipsisGlyph.xBearing;
removedGlypsWidth = -ellipsisGlyph.xBearing;
- firstPenSet = true;
+ if( !EqualsZero( firstPenX ) )
+ {
+ firstPenSet = true;
+ }
}
removedGlypsWidth += std::min( glyphToRemove.advance, ( glyphToRemove.xBearing + glyphToRemove.width ) );
}
removedGlypsWidth += std::min( glyphToRemove.advance, ( glyphToRemove.xBearing + glyphToRemove.width ) );
@@
-332,7
+335,8
@@
void ViewModel::ElideGlyphs()
// Calculate the width of the ellipsis glyph and check if it fits.
const float ellipsisGlyphWidth = ellipsisGlyph.width + ellipsisGlyph.xBearing;
// Calculate the width of the ellipsis glyph and check if it fits.
const float ellipsisGlyphWidth = ellipsisGlyph.width + ellipsisGlyph.xBearing;
- if( ellipsisGlyphWidth < removedGlypsWidth )
+ // If it is the last glyph to remove, add the ellipsis glyph without checking its width.
+ if( ( ellipsisGlyphWidth < removedGlypsWidth ) || ( index == 0u ) )
{
GlyphInfo& glyphInfo = *( elidedGlyphsBuffer + index );
Vector2& position = *( elidedPositionsBuffer + index );
{
GlyphInfo& glyphInfo = *( elidedGlyphsBuffer + index );
Vector2& position = *( elidedPositionsBuffer + index );
@@
-344,7
+348,11
@@
void ViewModel::ElideGlyphs()
// Change the 'x' and 'y' position of the ellipsis glyph.
if( position.x > firstPenX )
{
// Change the 'x' and 'y' position of the ellipsis glyph.
if( position.x > firstPenX )
{
- position.x = firstPenX + removedGlypsWidth - ellipsisGlyphWidth;
+ position.x = firstPenX;
+ if (ellipsisGlyphWidth < removedGlypsWidth)
+ {
+ position.x += removedGlypsWidth - ellipsisGlyphWidth;
+ }
}
position.x += ellipsisGlyph.xBearing;
}
position.x += ellipsisGlyph.xBearing;