From f8669ba2b57cd6082b490442075a26cad91da4ec Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 8 Jul 2024 15:33:26 +0800 Subject: [PATCH] Correct conditions for iconification on Android * java/org/gnu/emacs/EmacsActivity.java (EmacsActivity) : Rename to . (attachWindow): Adjust to match. (onPause): Delete function. (onStop): Deem frames iconified after calls to onStop instead. (cherry picked from commit 67f291ddae31cc4623fd93280b141ee8611f3f5a) --- java/org/gnu/emacs/EmacsActivity.java | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/java/org/gnu/emacs/EmacsActivity.java b/java/org/gnu/emacs/EmacsActivity.java index 7d02e4f4834..0c9e8312b90 100644 --- a/java/org/gnu/emacs/EmacsActivity.java +++ b/java/org/gnu/emacs/EmacsActivity.java @@ -78,7 +78,7 @@ public class EmacsActivity extends Activity public static EmacsWindow focusedWindow; /* Whether or not this activity is paused. */ - private boolean isPaused; + private boolean isStopped; /* Whether or not this activity is fullscreen. */ private boolean isFullscreen; @@ -196,7 +196,7 @@ public class EmacsActivity extends Activity window.view.requestFocus (); /* If the activity is iconified, send that to the window. */ - if (isPaused) + if (isStopped) window.noticeIconified (); /* Invalidate the focus. Since attachWindow may be called from @@ -308,8 +308,13 @@ public class EmacsActivity extends Activity public final void onStop () { - timeOfLastInteraction = SystemClock.elapsedRealtime (); + /* Iconification was previously reported in onPause, but that was + misinformed, as `onStop' is the actual callback activated upon + changes in an activity's visibility. */ + isStopped = true; + EmacsWindowManager.MANAGER.noticeIconified (this); + timeOfLastInteraction = SystemClock.elapsedRealtime (); super.onStop (); } @@ -403,21 +408,11 @@ public class EmacsActivity extends Activity invalidateFocus (3); } - @Override - public final void - onPause () - { - isPaused = true; - - EmacsWindowManager.MANAGER.noticeIconified (this); - super.onPause (); - } - @Override public final void onResume () { - isPaused = false; + isStopped = false; timeOfLastInteraction = 0; EmacsWindowManager.MANAGER.noticeDeiconified (this); -- 2.39.2