Skip to content

Commit da5e0ee

Browse files
author
stoecker
committed
fix #24677 - improve startup time needed for loading SVG icons
git-svn-id: https://josm.openstreetmap.de/svn/trunk@19548 0c6e7542-c601-0410-84e7-c038aed88b3b
1 parent b474bb0 commit da5e0ee

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/org/openstreetmap/josm/gui/tagging/presets/TaggingPreset.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,14 @@ public void setIcon(final String iconName) {
284284
.setOptional(true)
285285
.getResourceAsync(result -> {
286286
if (result != null) {
287+
// Pre-render off EDT to avoid flooding the event queue with expensive SVG rendering
288+
ImageIcon small = result.getImageIcon(ImageProvider.ImageSizes.SMALLICON.getImageDimension());
289+
ImageIcon large = result.getImageIcon(ImageProvider.ImageSizes.LARGEICON.getImageDimension());
287290
GuiHelper.runInEDT(() -> {
288291
try {
289-
result.attachImageIcon(this, true);
292+
putValue(Action.SMALL_ICON, small);
293+
putValue(Action.LARGE_ICON_KEY, large);
294+
putValue("ImageResource", result);
290295
} catch (IllegalArgumentException e) {
291296
Logging.warn(toString() + ": " + PRESET_ICON_ERROR_MSG_PREFIX + iconName);
292297
Logging.warn(e);

src/org/openstreetmap/josm/tools/ImageProvider.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -724,9 +724,7 @@ public ImageResource getResource() {
724724
* @since 13252
725725
*/
726726
public CompletableFuture<Void> getResourceAsync(Consumer<? super ImageResource> action) {
727-
return isRemote()
728-
? CompletableFuture.supplyAsync(this::getResource, IMAGE_FETCHER).thenAcceptAsync(action, IMAGE_FETCHER)
729-
: CompletableFuture.completedFuture(getResource()).thenAccept(action);
727+
return CompletableFuture.supplyAsync(this::getResource, IMAGE_FETCHER).thenAcceptAsync(action, IMAGE_FETCHER);
730728
}
731729

732730
/**

0 commit comments

Comments
 (0)