commit 6ab54c0b573e3e5ddd300bb3876ca8c757b22ceb
parent 5fd07dd7e574c3e70767627b4a002f8a31f2b7d1
Author: Mugurell <Mugurell@users.noreply.github.com>
Date: Wed, 31 Dec 2025 07:06:44 +0000
Bug 2002916 - Only exit search when user touches home content r=android-reviewers,skhan
Ignore hover events from external physical devices.
Differential Revision: https://phabricator.services.mozilla.com/D277638
Diffstat:
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/ui/Homepage.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/ui/Homepage.kt
@@ -4,6 +4,8 @@
package org.mozilla.fenix.home.ui
+import androidx.compose.foundation.gestures.awaitEachGesture
+import androidx.compose.foundation.gestures.awaitFirstDown
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.Column
@@ -21,6 +23,7 @@ import androidx.compose.runtime.ReadOnlyComposable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.input.pointer.PointerEventPass
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
@@ -111,7 +114,8 @@ internal fun Homepage(
}
.pointerInput(state.isSearchInProgress) {
if (state.isSearchInProgress) {
- awaitPointerEventScope {
+ awaitEachGesture {
+ awaitFirstDown(false, PointerEventPass.Initial)
interactor.onHomeContentFocusedWhileSearchIsActive()
}
}
diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/ui/MiddleSearchHomepage.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/ui/MiddleSearchHomepage.kt
@@ -5,6 +5,8 @@
package org.mozilla.fenix.home.ui
import androidx.compose.foundation.background
+import androidx.compose.foundation.gestures.awaitEachGesture
+import androidx.compose.foundation.gestures.awaitFirstDown
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxWithConstraints
@@ -21,6 +23,7 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.graphicsLayer
+import androidx.compose.ui.input.pointer.PointerEventPass
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.semantics.semantics
@@ -72,7 +75,8 @@ internal fun MiddleSearchHomepage(
}
.pointerInput(state.isSearchInProgress) {
if (state.isSearchInProgress) {
- awaitPointerEventScope {
+ awaitEachGesture {
+ awaitFirstDown(false, PointerEventPass.Initial)
interactor.onHomeContentFocusedWhileSearchIsActive()
}
}