From 60b63cd9fbc3fe723999e50b3ad9b4f9e87701d6 Mon Sep 17 00:00:00 2001 From: Rocka Date: Thu, 31 Jul 2025 00:49:29 +0800 Subject: [PATCH] Fix CandidatesView OnGlobalLayoutListener memory leak ref: https://stackoverflow.com/questions/36788740/can-a-not-removed-viewtreeobserver-listener-cause-memory-leaks/63713958#63713958 --- .../java/org/fcitx/fcitx5/android/input/CandidatesView.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt b/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt index c03eb61f..3e8c4e34 100644 --- a/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt +++ b/app/src/main/java/org/fcitx/fcitx5/android/input/CandidatesView.kt @@ -225,13 +225,13 @@ class CandidatesView( override fun onAttachedToWindow() { super.onAttachedToWindow() - candidatesUi.root.viewTreeObserver.addOnGlobalLayoutListener(layoutListener) + viewTreeObserver.addOnGlobalLayoutListener(layoutListener) viewTreeObserver.addOnPreDrawListener(preDrawListener) } override fun onDetachedFromWindow() { viewTreeObserver.removeOnPreDrawListener(preDrawListener) - candidatesUi.root.viewTreeObserver.removeOnGlobalLayoutListener(layoutListener) + viewTreeObserver.removeOnGlobalLayoutListener(layoutListener) touchEventReceiverWindow.dismiss() super.onDetachedFromWindow() }