@@ -21,9 +21,14 @@ import com.unciv.utils.Display
21
21
import com.unciv.utils.Log
22
22
import org.lwjgl.system.Configuration
23
23
import java.awt.GraphicsEnvironment
24
+ import java.awt.Image
25
+ import java.awt.Taskbar
26
+ import java.awt.Toolkit
24
27
import java.io.File
28
+ import java.net.URL
25
29
import kotlin.system.exitProcess
26
30
31
+
27
32
internal object DesktopLauncher {
28
33
29
34
@JvmStatic
@@ -77,11 +82,13 @@ internal object DesktopLauncher {
77
82
ImagePacker .packImages(isRunFromJAR)
78
83
79
84
val config = Lwjgl3ApplicationConfiguration ()
80
- config.setWindowIcon(" ExtraImages/Icon.png" )
85
+ config.setWindowIcon(" ExtraImages/Icons/Unciv32.png" , " ExtraImages/Icons/Unciv128.png" )
86
+ if (SharedLibraryLoader .isMac) updateDockIconForMacOs(" ExtraImages/Icons/Unciv128.png" )
81
87
config.setTitle(" Unciv" )
82
88
config.setHdpiMode(HdpiMode .Logical )
83
89
config.setWindowSizeLimits(WindowState .minimumWidth, WindowState .minimumHeight, - 1 , - 1 )
84
90
91
+
85
92
86
93
87
94
// LibGDX not yet configured, use regular java class
@@ -116,3 +123,15 @@ internal object DesktopLauncher {
116
123
exitProcess(0 )
117
124
}
118
125
}
126
+
127
+ private fun updateDockIconForMacOs (fileName : String ) {
128
+ try {
129
+ val defaultToolkit: Toolkit = Toolkit .getDefaultToolkit()
130
+ val imageResource: URL = FileHandle (fileName).file().toURI().toURL()
131
+ val image: Image = defaultToolkit.getImage(imageResource)
132
+ val taskbar = Taskbar .getTaskbar()
133
+ taskbar.iconImage = image
134
+ } catch (throwable: Throwable ) {
135
+ throwable.printStackTrace()
136
+ }
137
+ }
0 commit comments