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

Commit 973f3b4e authored by Alan Viverette's avatar Alan Viverette
Browse files

Prevent refocus after entering touch mode

BUG: 10210009
Change-Id: I9a5d7016728cc7d1fb1c759708b6df41c81865bb
parent 9955699d
Loading
Loading
Loading
Loading
+16 −8
Original line number Diff line number Diff line
@@ -4572,10 +4572,23 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            System.out.println(this + " clearFocus()");
        }
        clearFocusInternal(true, true);
    }
    /**
     * Clears focus from the view, optionally propagating the change up through
     * the parent hierarchy and requesting that the root view place new focus.
     *
     * @param propagate whether to propagate the change up through the parent
     *            hierarchy
     * @param refocus when propagate is true, specifies whether to request the
     *            root view place new focus
     */
    void clearFocusInternal(boolean propagate, boolean refocus) {
        if ((mPrivateFlags & PFLAG_FOCUSED) != 0) {
            mPrivateFlags &= ~PFLAG_FOCUSED;
            if (mParent != null) {
            if (propagate && mParent != null) {
                mParent.clearChildFocus(this);
            }
@@ -4583,7 +4596,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            refreshDrawableState();
            if (!rootViewRequestFocus()) {
            if (propagate && (!refocus || !rootViewRequestFocus())) {
                notifyGlobalFocusCleared(this);
            }
        }
@@ -4613,12 +4626,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            System.out.println(this + " unFocus()");
        }
        if ((mPrivateFlags & PFLAG_FOCUSED) != 0) {
            mPrivateFlags &= ~PFLAG_FOCUSED;
            onFocusChanged(false, 0, null);
            refreshDrawableState();
        }
        clearFocusInternal(false, false);
    }
    /**
+3 −3
Original line number Diff line number Diff line
@@ -3271,9 +3271,9 @@ public final class ViewRootImpl implements ViewParent,
                    // focus
                    return ancestorToTakeFocus.requestFocus();
                } else {
                    // nothing appropriate to have focus in touch mode, clear it
                    // out
                    focused.clearFocus();
                    // There's nothing to focus. Clear and propagate through the
                    // hierarchy, but don't attempt to place new focus.
                    focused.clearFocusInternal(true, false);
                    return true;
                }
            }