Commit
a6f634362068fc4a7766cbc5dbd5949005457810
by Claudio GuglielmoTile: fix double insert animation
Both, the visible and the insert animation, set the tile to invisible
before the animation starts.
In addition, the insert animation waits for the tile grid layout to
finish before it starts. The tile grid layout may position the tiles
with an animation, e.g. move the tiles away to make space for the
tile to be inserted.
If a tile is inserted and a tile made visible while the tile grid layout
is still positioning the tiles, the new tile flickers because
tile._renderVisible() makes it visible even though the insert
animation is still pending and the tile should stay invisible.
Can be reproduced with the tile grid in the classic widgets app:
1. Add a filter in the source code with addFilter(() -> true);
2. Open Tile Field
3. Sort descending
4. Insert a new tile
The filter is necessary because the server will send a tiles
property change event first and then a filteredTiles property change
event. When the new tile is inserted, the existing filter does not
know it yet and makes it invisible. When the filteredTiles event
is processed, the tile is made visible again which leads to the
described behavior.
350043
(commit: a6f6343)