From: Po Lu Date: Mon, 3 Mar 2025 13:57:05 +0000 (+0800) Subject: Fix styling issues on Android 15 QPR1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f445be07ecc7c4bc2b0539d9b8ab2858971cde57;p=emacs.git Fix styling issues on Android 15 QPR1 * java/org/gnu/emacs/EmacsView.java (EmacsView): Guarantee that frame views are created with the correct theme. * java/res/values-v20/style.xml (EmacsStyle): * java/res/values-v29/style.xml (EmacsStyle): Disable a swiping gesture enabled on certain Android systems. * java/res/values-v35/style.xml: Rename from `styles'.xml. (cherry picked from commit 96d26b493618f59bbdd4de86be65e784735541c8) --- diff --git a/java/org/gnu/emacs/EmacsView.java b/java/org/gnu/emacs/EmacsView.java index 5abea711506..938e2a21d1a 100644 --- a/java/org/gnu/emacs/EmacsView.java +++ b/java/org/gnu/emacs/EmacsView.java @@ -24,10 +24,11 @@ import android.content.Context; import android.text.InputType; import android.view.ContextMenu; +import android.view.ContextThemeWrapper; import android.view.DragEvent; -import android.view.View; import android.view.KeyEvent; import android.view.MotionEvent; +import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowInsets; @@ -127,32 +128,36 @@ public final class EmacsView extends ViewGroup public EmacsView (EmacsWindow window) { - super (EmacsService.SERVICE); - - Object tem; - Context context; + /* This is required to guarantee that popup menus respect the + default style. */ + super (new ContextThemeWrapper (EmacsService.SERVICE, + R.style.EmacsStyle)); + { + Object tem; + Context context; - this.window = window; - this.damageRegion = new Region (); + this.window = window; + this.damageRegion = new Region (); - setFocusable (true); - setFocusableInTouchMode (true); + setFocusable (true); + setFocusableInTouchMode (true); - /* Create the surface view. */ - this.surfaceView = new EmacsSurfaceView (this); - addView (this.surfaceView); + /* Create the surface view. */ + this.surfaceView = new EmacsSurfaceView (this); + addView (this.surfaceView); - /* Get rid of the default focus highlight. */ - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) - setDefaultFocusHighlightEnabled (false); + /* Get rid of the default focus highlight. */ + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) + setDefaultFocusHighlightEnabled (false); - /* Obtain the input method manager. */ - context = getContext (); - tem = context.getSystemService (Context.INPUT_METHOD_SERVICE); - imManager = (InputMethodManager) tem; + /* Obtain the input method manager. */ + context = getContext (); + tem = context.getSystemService (Context.INPUT_METHOD_SERVICE); + imManager = (InputMethodManager) tem; - /* Add this view as its own global layout listener. */ - getViewTreeObserver ().addOnGlobalLayoutListener (this); + /* Add this view as its own global layout listener. */ + getViewTreeObserver ().addOnGlobalLayoutListener (this); + } } private void diff --git a/java/res/values-v20/style.xml b/java/res/values-v20/style.xml new file mode 100644 index 00000000000..285cd61ced6 --- /dev/null +++ b/java/res/values-v20/style.xml @@ -0,0 +1,30 @@ + + + + + + + -