mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-12 19:41:10 +00:00
fix(input): retry the relative mouse mode gamescope did not take
The drawer state moved before the request ran, so a failed request left the two out of step and the next focus change skipped the resend.
This commit is contained in:
1 parent
7ff8c5d568
commit
cf0f82d8cd
1 file changed
+5
-5
@@ -219,6 +219,7 @@ class SessionActivity : ComponentActivity(), SurfaceHolder.Callback {
|
||||
private var steamImportAnswered: String? = null
|
||||
private var directHoldBehavior by mutableStateOf(com.droiddeck.launcher.input.TouchGestureConfig.MOUSE_BEHAVIOR_CLICK)
|
||||
private var relativeMouseMode by mutableIntStateOf(0)
|
||||
@Volatile private var appliedRelativeMouseMode: Int? = null
|
||||
private var screenKeyPickerOpen by mutableStateOf(false)
|
||||
private var screenKeyBind: List<Int>? = null
|
||||
private var screenKeyDir: Int? = null
|
||||
@@ -2793,17 +2794,16 @@ class SessionActivity : ComponentActivity(), SurfaceHolder.Callback {
|
||||
relativeMouseRequests.execute {
|
||||
val result = runCatching { AgentGuest.call(this, request, 8_000, trusted = true) }
|
||||
val ok = result.getOrNull()?.optBoolean("ok") == true
|
||||
if (!ok) Log.w(TAG, "gamescope did not take relative mouse: ${result.exceptionOrNull() ?: result.getOrNull()}")
|
||||
if (ok) appliedRelativeMouseMode = mode
|
||||
else Log.w(TAG, "gamescope did not take relative mouse: ${result.exceptionOrNull() ?: result.getOrNull()}")
|
||||
}
|
||||
}
|
||||
|
||||
private fun refreshGestureConfig() {
|
||||
gestureConfig = com.droiddeck.launcher.input.GesturePrefs.read(this, gestureGame)
|
||||
directHoldBehavior = gestureConfig.directHoldBehavior
|
||||
if (relativeMouseMode != gestureConfig.relativeMouseMode) {
|
||||
relativeMouseMode = gestureConfig.relativeMouseMode
|
||||
setRelativeMouse(relativeMouseMode)
|
||||
}
|
||||
relativeMouseMode = gestureConfig.relativeMouseMode
|
||||
if (appliedRelativeMouseMode != relativeMouseMode) setRelativeMouse(relativeMouseMode)
|
||||
gestureTouchStreamGate.reset()
|
||||
if (::touchscreenGestures.isInitialized) touchscreenGestures.configure(gestureConfig)
|
||||
if (::directTouchHold.isInitialized) directTouchHold.configure(gestureConfig)
|
||||
|
||||
Reference in new issue
Block a user