Repaint the whole tree viewport while scrolling
The right-aligned icon strip is positioned against the viewport rather than the row, so the pixels a blit scroll reuses are stale and the icons leave ghosts behind. Scroll the viewport in simple mode, and widen every repaint request to the full visible width so a row whose label changes size cannot leave its icons behind either. Also stop blacklisting an icon whose download failed only because the file transfer channel was not up yet: channel rows are painted during connect, well before that point, so their icons would never be retried. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,9 @@ public final class IconRepository {
|
||||
icons.put(id, data);
|
||||
writeDiskCache(id, data);
|
||||
if (onIconLoaded != null) onIconLoaded.run();
|
||||
} catch (IllegalStateException e) {
|
||||
// Not connected (yet): a channel icon can be asked for while the tree is
|
||||
// first painted, before file transfers are up. Leave it retryable.
|
||||
} catch (Exception e) {
|
||||
// Missing or permission-denied icons are common; don't ask again.
|
||||
failed.add(id);
|
||||
|
||||
Reference in New Issue
Block a user