From 8eb2c716ef55a49a221e9751c6c740d74d82e242 Mon Sep 17 00:00:00 2001 From: dzaima Date: Fri, 27 Sep 2024 15:28:56 +0300 Subject: [PATCH] X11: use setClassHint and setIconData in dashboard example --- examples/dashboard/java/Example.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/examples/dashboard/java/Example.java b/examples/dashboard/java/Example.java index f8a2ee20..42e89470 100644 --- a/examples/dashboard/java/Example.java +++ b/examples/dashboard/java/Example.java @@ -10,6 +10,9 @@ import java.util.function.*; import java.util.stream.*; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; public class Example implements Consumer { public static int PADDING = 10; @@ -82,6 +85,17 @@ public Example() { case MACOS -> { window.setIcon(new File("examples/dashboard/resources/macos.icns")); } + case X11 -> { + ((WindowX11) window).setClassHint("jwm-dashboard-example"); // allows OS-wide identification of the window (e.g. icon themes, .desktop files) + try { + Bitmap i = Bitmap.makeFromImage(Image.makeDeferredFromEncodedBytes(Files.readAllBytes(Path.of("examples/dashboard/resources/linux/icon_48x48.png")))); + ImageInfo info = i.getImageInfo(); + + ((WindowX11) window).setIconData(info.getWidth(), info.getHeight(), i.readPixels()); + } catch (IOException e) { + e.printStackTrace(); + } + } } window.setVisible(true);