clarified default of flatlaf.useNativeLibrary=false, for cross-platform GUI uniformity;
--- a/NEWS Sun Feb 02 13:17:54 2025 +0100
+++ b/NEWS Sun Feb 02 14:16:26 2025 +0100
@@ -191,15 +191,17 @@
* Update to jEdit 5.7.0, the latest release.
-* Update to FlatLaf 3.5.4, the latest release. 2.6 was the last portable
-version, but 3.x requires a Java jar together with a native library. The
-latter is missing for arm64-linux, so old 2.6 is used on that platform:
-this may lead to minor differences in GUI appearance and behaviour.
-
-* Due to the update of FlatLaf, x86_64-linux with Wayland window manager
+* Update to FlatLaf 3.5.4, the latest release. Starting with version 3.x
+there is native library support for non-portable GUI operations. The
+Isabelle/Scala GUI setup disables that by default, for cross-platform
+uniformity (arm64-linux lacks a native library). It can be enabled via
+the Java runtime option -Dflatlaf.useNativeLibrary=true (e.g. via
+JEDIT_JAVA_SYSTEM_OPTIONS).
+
+* Thanks to the update of FlatLaf, Linux with Wayland window manager
(e.g. standard Ubuntu) now renders submenus like "File / Recent Files"
-properly. On arm64-linux an old problem of FlatLaf persists, but it is
-possible to use WaylandEnable=false in /etc/gdm3/custom.conf and reboot.
+in Isabelle/jEdit properly. Before that, the menu could disappear
+sponteneously.
*** Isabelle/VSCode Prover IDE ***
--- a/src/Pure/GUI/gui.scala Sun Feb 02 13:17:54 2025 +0100
+++ b/src/Pure/GUI/gui.scala Sun Feb 02 14:16:26 2025 +0100
@@ -23,7 +23,11 @@
object GUI {
/* Swing look-and-feel */
- def init_laf(): Unit = com.formdev.flatlaf.FlatLightLaf.setup()
+ def init_laf(): Unit = {
+ val prop = com.formdev.flatlaf.FlatSystemProperties.USE_NATIVE_LIBRARY
+ System.setProperty(prop, System.getProperty(prop, "false"))
+ com.formdev.flatlaf.FlatLightLaf.setup()
+ }
def current_laf(): String = UIManager.getLookAndFeel.getClass.getName()