diff --git a/CHANGELOG.md b/CHANGELOG.md index bdc02215b0b..6eab689c030 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `# - Updated French translation - We added support for pasting entries in different formats [#3143](https://github.com/JabRef/jabref/issues/3143) - Crossreferenced entries are now used when a BibTex key is generated for an entry with empty fields. [#2811](https://github.com/JabRef/jabref/issues/2811) +- We now set the WM_CLASS of the UI to org-jabref-JabRefMain to allow certain Un*x window managers to properly identify its windows ### Fixed - We fixed an issue where JabRef would not terminated after asking to collect anonymous statistics [#2955 comment](https://github.com/JabRef/jabref/issues/2955#issuecomment-334591123) diff --git a/src/main/java/org/jabref/gui/GUIGlobals.java b/src/main/java/org/jabref/gui/GUIGlobals.java index a7cd28c72a2..61e3d4364ec 100644 --- a/src/main/java/org/jabref/gui/GUIGlobals.java +++ b/src/main/java/org/jabref/gui/GUIGlobals.java @@ -2,6 +2,7 @@ import java.awt.Color; import java.awt.Font; +import java.awt.Toolkit; import java.util.HashMap; import java.util.Map; @@ -13,6 +14,7 @@ import org.jabref.gui.keyboard.EmacsKeyBindings; import org.jabref.gui.specialfields.SpecialFieldViewModel; import org.jabref.logic.l10n.Localization; +import org.jabref.logic.util.OS; import org.jabref.model.entry.FieldName; import org.jabref.model.entry.specialfields.SpecialField; import org.jabref.preferences.JabRefPreferences; @@ -156,6 +158,18 @@ public static void init() { GUIGlobals.currentFont = new Font(Globals.prefs.get(JabRefPreferences.FONT_FAMILY), Globals.prefs.getInt(JabRefPreferences.FONT_STYLE), Globals.prefs.getInt(JabRefPreferences.FONT_SIZE)); + // Set WM_CLASS using reflection for certain Un*x window managers + if (!OS.WINDOWS && !OS.OS_X) { + try { + Toolkit xToolkit = Toolkit.getDefaultToolkit(); + java.lang.reflect.Field awtAppClassNameField = xToolkit.getClass().getDeclaredField("awtAppClassName"); + awtAppClassNameField.setAccessible(true); + awtAppClassNameField.set(xToolkit, "org-jabref-JabRefMain"); + } catch (Exception e) { + // ignore any error since this code only works for certain toolkits + } + } + } public static void setFont(int size) {