Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8b16525 authored by Romain Guy's avatar Romain Guy
Browse files

Fixes #1977685. Prevent crash when the soft keyboard is brought up.

ViewRoot keeps a reference to the previously focused View and use this reference
when trying to scroll the window to the focused rect. There situations however
in which the previously focused view might have been removed from the view
hierarchy. This happens on Home for instance when you trash an icon, or with
ListView's items. This change ensures the previously focused view is still part
of the view hierarchy.
parent 3660c095
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -1367,6 +1367,15 @@ public final class ViewRoot extends Handler implements ViewParent,
            // is non-null and we just want to scroll to whatever that
            // is non-null and we just want to scroll to whatever that
            // rectangle is).
            // rectangle is).
            View focus = mRealFocusedView;
            View focus = mRealFocusedView;

            // When in touch mode, focus points to the previously focused view,
            // which may have been removed from the view hierarchy. The following
            // line checks whether the view is still in the hierarchy
            if (focus == null || focus.getParent() == null) {
                mRealFocusedView = null;
                return false;
            }

            if (focus != mLastScrolledFocus) {
            if (focus != mLastScrolledFocus) {
                // If the focus has changed, then ignore any requests to scroll
                // If the focus has changed, then ignore any requests to scroll
                // to a rectangle; first we want to make sure the entire focus
                // to a rectangle; first we want to make sure the entire focus