summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsDialog.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-07-13 12:05:50 +0800
committerPo Lu <luangruo@yahoo.com>2023-07-13 12:05:50 +0800
commit140755f2cfe6a39f643ab0a9ca2d81b0ed470ae7 (patch)
treeb55477c3af604e56e4797a8d9b711ed12f8b5fb7 /java/org/gnu/emacs/EmacsDialog.java
parent4e2fda28edd3eb229c60576a215c3e4af5aa53e3 (diff)
Disable hardware acceleration on Android
It serves no purpose and causes tearing. Uploading the bitmap to the GPU takes about as long as it does to incrementally update the surface in software. * java/AndroidManifest.xml.in: Disable hardware acceleration. * java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): Make lastClosedMenu static. * java/org/gnu/emacs/EmacsDialog.java (toAlertDialog): Enable hardware acceleration within alert dialogs. * java/org/gnu/emacs/EmacsSurfaceView.java (onDraw): Describe why hardware acceleration is disabled. * java/org/gnu/emacs/EmacsWindow.java (run): Remove redundant call.
Diffstat (limited to 'java/org/gnu/emacs/EmacsDialog.java')
-rw-r--r--java/org/gnu/emacs/EmacsDialog.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/java/org/gnu/emacs/EmacsDialog.java b/java/org/gnu/emacs/EmacsDialog.java
index 5f48a9a5f9f..42455ed78f8 100644
--- a/java/org/gnu/emacs/EmacsDialog.java
+++ b/java/org/gnu/emacs/EmacsDialog.java
@@ -152,7 +152,7 @@ public final class EmacsDialog implements DialogInterface.OnDismissListener
toAlertDialog (Context context)
{
AlertDialog dialog;
- int size, styleId;
+ int size, styleId, flag;
int[] attrs;
EmacsButton button;
EmacsDialogButtonLayout layout;
@@ -160,6 +160,7 @@ public final class EmacsDialog implements DialogInterface.OnDismissListener
ViewGroup.LayoutParams layoutParams;
Theme theme;
TypedArray attributes;
+ Window window;
size = buttons.size ();
styleId = -1;
@@ -273,6 +274,17 @@ public final class EmacsDialog implements DialogInterface.OnDismissListener
}
}
+ /* Make sure the dialog is hardware accelerated. Hardware
+ acceleration is disabled for dialogs by default, because they
+ aren't enabled in EmacsActivity either. */
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
+ {
+ flag = WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED;
+ window = dialog.getWindow ();
+ window.addFlags (flag);
+ }
+
return dialog;
}