From: Po Lu Date: Tue, 4 Mar 2025 01:36:19 +0000 (+0800) Subject: Circumvent another styling issue in Android 15 QPR1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a146ee6568848556b5c46cfcb1fcdc505cbabd1d;p=emacs.git Circumvent another styling issue in Android 15 QPR1 * java/org/gnu/emacs/EmacsView.java (popupMenu): On Android 15 and later, reload the default theme before displaying popup menus. (cherry picked from commit d6aea7cc948f13615237a91d347b0383a3089a8a) --- diff --git a/java/org/gnu/emacs/EmacsView.java b/java/org/gnu/emacs/EmacsView.java index 938e2a21d1a..8f16dbad257 100644 --- a/java/org/gnu/emacs/EmacsView.java +++ b/java/org/gnu/emacs/EmacsView.java @@ -707,6 +707,8 @@ public final class EmacsView extends ViewGroup popupMenu (EmacsContextMenu menu, int xPosition, int yPosition, boolean force) { + ContextThemeWrapper context; + if (popupActive && !force) return false; @@ -720,6 +722,16 @@ public final class EmacsView extends ViewGroup contextMenu = menu; popupActive = true; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) + { + context = (ContextThemeWrapper) getContext (); + /* It is necessary to reload the current theme before attempting + to display a new popup menu, or any previously applied system + theme will continue to apply to it. */ + context.setTheme (R.style.EmacsStyleOpen); + context.setTheme (R.style.EmacsStyle); + } + /* Use showContextMenu (float, float) on N to get actual popup behavior. */ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)