summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsSurfaceView.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-02-08 22:40:10 +0800
committerPo Lu <luangruo@yahoo.com>2023-02-08 22:40:10 +0800
commit0bd4b7fdab2fdf437c4a759d53dfdc9f667aefb1 (patch)
treea1320da59f2f5e6a1c0f31b9fd504400da2fcfab /java/org/gnu/emacs/EmacsSurfaceView.java
parent7fb0df0ce2858eeb03ec18b540acf49a5b8d90c9 (diff)
Update Android port
* doc/lispref/frames.texi (On-Screen Keyboards): Describe return value of `frame-toggle-on-screen-keyboard'. * java/org/gnu/emacs/EmacsSurfaceView.java (surfaceChanged) (surfaceCreated, EmacsSurfaceView): Remove unuseful synchronization code. The framework doesn't seem to look at this at all. * java/org/gnu/emacs/EmacsView.java (EmacsView): (onLayout): Lay out the window after children. (swapBuffers): Properly implement `force'. (windowUpdated): Delete function. * lisp/frame.el (frame-toggle-on-screen-keyboard): Return whether or not the on screen keyboard might've been displayed. * lisp/minibuffer.el (minibuffer-on-screen-keyboard-timer): (minibuffer-on-screen-keyboard-displayed): (minibuffer-setup-on-screen-keyboard): (minibuffer-exit-on-screen-keyboard): Improve OSK dismissal when there are consecutive minibuffers. * lisp/touch-screen.el (touch-screen-window-selection-changed): New function. (touch-screen-handle-point-up): Register it as a window selection changed function. * src/android.c (struct android_emacs_window) (android_init_emacs_window): Remove references to `windowUpdated'. (android_window_updated): Delete function. * src/android.h (struct android_output): Remove `last_configure_serial'. * src/androidterm.c (handle_one_android_event) (android_frame_up_to_date): * src/androidterm.h (struct android_output): Remove frame synchronization, as that does not work on Android.
Diffstat (limited to 'java/org/gnu/emacs/EmacsSurfaceView.java')
-rw-r--r--java/org/gnu/emacs/EmacsSurfaceView.java54
1 files changed, 5 insertions, 49 deletions
diff --git a/java/org/gnu/emacs/EmacsSurfaceView.java b/java/org/gnu/emacs/EmacsSurfaceView.java
index 2fe9e103b2b..f6cb77bb2b8 100644
--- a/java/org/gnu/emacs/EmacsSurfaceView.java
+++ b/java/org/gnu/emacs/EmacsSurfaceView.java
@@ -45,14 +45,11 @@ public class EmacsSurfaceView extends SurfaceView
surfaceChanged (SurfaceHolder holder, int format,
int width, int height)
{
- Log.d (TAG, "surfaceChanged: " + view + ", " + view.pendingConfigure);
+ Canvas canvas;
- /* Make sure not to swap buffers if there is pending
- configuration, because otherwise the redraw callback will not
- run correctly. */
+ Log.d (TAG, "surfaceChanged: " + view + ", ");
- if (view.pendingConfigure == 0)
- view.swapBuffers ();
+ view.swapBuffers (true);
}
@Override
@@ -67,7 +64,7 @@ public class EmacsSurfaceView extends SurfaceView
/* Drop the lock when doing this, or a deadlock can
result. */
- view.swapBuffers ();
+ view.swapBuffers (true);
}
@Override
@@ -82,44 +79,6 @@ public class EmacsSurfaceView extends SurfaceView
}
}
- /* And this is the callback used on Android 26 and later. It is
- used because it can tell the system when drawing completes. */
-
- private class Callback2 extends Callback implements SurfaceHolder.Callback2
- {
- @Override
- public void
- surfaceRedrawNeeded (SurfaceHolder holder)
- {
- /* This version is not supported. */
- return;
- }
-
- @Override
- public void
- surfaceRedrawNeededAsync (SurfaceHolder holder,
- Runnable drawingFinished)
- {
- Runnable old;
-
- Log.d (TAG, "surfaceRedrawNeededAsync: " + view.pendingConfigure);
-
- /* The system calls this function when it wants to know whether
- or not Emacs is still configuring itself in response to a
- resize.
-
- If the view did not send an outstanding ConfigureNotify
- event, then call drawingFinish immediately. Else, give it to
- the view to execute after drawing completes. */
-
- if (view.pendingConfigure == 0)
- drawingFinished.run ();
- else
- /* And set this runnable to run once drawing completes. */
- view.drawingFinished = drawingFinished;
- }
- }
-
public
EmacsSurfaceView (final EmacsView view)
{
@@ -128,10 +87,7 @@ public class EmacsSurfaceView extends SurfaceView
this.surfaceChangeLock = new Object ();
this.view = view;
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)
- getHolder ().addCallback (new Callback ());
- else
- getHolder ().addCallback (new Callback2 ());
+ getHolder ().addCallback (new Callback ());
}
public boolean