fixed _didInvalidateLayout to properly reset internal state

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/gnustep_testplant_branch@37019 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Doug Simons 2013-08-26 21:19:31 +00:00
parent 425fbcd681
commit 68a8e6c19f
2 changed files with 9 additions and 8 deletions

View file

@ -1,3 +1,10 @@
2013-08-26 Doug Simons <doug.simons@testplant.com>
* GSLayoutManager.m: Changed _didInvalidateLayout to call [self
_invalidateLayoutFromContainer:0] to properly reset things. Otherwise
things were left in an inconsistent state internally (including layout_glyph
being beyond the new text length, which caused nasty exceptions).
2013-08-08 Frank Le Grand <frank.legrand@testplant.com>
Merged changes from Trunk (since rev 35219) to TestPlant branch.

View file

@ -1854,6 +1854,7 @@ places where we switch.
tc->num_linefrags = tc->num_soft = 0;
tc->size_linefrags = 0;
tc->pos = tc->length = 0;
// FIXME: This value never gets used:
tc->was_invalidated = YES;
}
for (i = idx - 1, tc = textcontainers + idx - 1; i >= 0; i--, tc--)
@ -2056,14 +2057,7 @@ places where we switch.
-(void) _didInvalidateLayout
{
int i;
textcontainer_t *tc;
for (tc = textcontainers, i = 0; i < num_textcontainers; i++, tc++)
{
// FIXME: This value never gets used
tc->was_invalidated = YES;
}
[self _invalidateLayoutFromContainer: 0];
}
@end