@@ -44,7 +44,9 @@ private Font getScaledFont(int zoom) {
44
44
45
45
private Font createAndCacheFont (int zoom ) {
46
46
Font newFont = createFont (zoom );
47
- customFontHandlesKeyMap .put (Font .win32_getHandle (newFont ), this );
47
+ FontData clonedFontData = new FontData (newFont .getFontData ()[0 ]);
48
+ fontsKeyMap .put (clonedFontData , this );
49
+ fontHandlesKeyMap .put (Font .win32_getHandle (newFont ), this );
48
50
scaledFonts .put (zoom , newFont );
49
51
return newFont ;
50
52
}
@@ -108,8 +110,8 @@ protected void dispose() {
108
110
}
109
111
110
112
private ScaledFontContainer systemFontContainer ;
111
- private Map <FontData , ScaledFontContainer > customFontsKeyMap = new HashMap <>();
112
- private Map <Long , ScaledFontContainer > customFontHandlesKeyMap = new HashMap <>();
113
+ private Map <FontData , ScaledFontContainer > fontsKeyMap = new HashMap <>();
114
+ private Map <Long , ScaledFontContainer > fontHandlesKeyMap = new HashMap <>();
113
115
private Device device ;
114
116
115
117
ScalingSWTFontRegistry (Device device ) {
@@ -125,27 +127,26 @@ public Font getSystemFont(int zoom) {
125
127
@ Override
126
128
public Font getFont (FontData fontData , int zoom ) {
127
129
ScaledFontContainer container ;
128
- if (customFontsKeyMap .containsKey (fontData )) {
129
- container = customFontsKeyMap .get (fontData );
130
+ if (fontsKeyMap .containsKey (fontData )) {
131
+ container = fontsKeyMap .get (fontData );
130
132
} else {
131
133
FontData clonedFontData = new FontData (fontData );
132
134
container = new ScaledCustomFontContainer (clonedFontData );
133
- customFontsKeyMap .put (clonedFontData , container );
134
135
}
135
136
return container .getScaledFont (zoom );
136
137
}
137
138
138
139
@ Override
139
140
public Font getFont (long fontHandle , int zoom ) {
140
- if (customFontHandlesKeyMap .containsKey (fontHandle )) {
141
- return customFontHandlesKeyMap .get (fontHandle ).getScaledFont (zoom );
141
+ if (fontHandlesKeyMap .containsKey (fontHandle )) {
142
+ return fontHandlesKeyMap .get (fontHandle ).getScaledFont (zoom );
142
143
}
143
144
return Font .win32_new (device , fontHandle , zoom );
144
145
}
145
146
146
147
@ Override
147
148
public void dispose () {
148
- customFontsKeyMap .values ().forEach (ScaledFontContainer ::dispose );
149
- customFontsKeyMap .clear ();
149
+ fontsKeyMap .values ().forEach (ScaledFontContainer ::dispose );
150
+ fontsKeyMap .clear ();
150
151
}
151
152
}
0 commit comments