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

Commit 70e907f5 authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Prevent refocus after entering touch mode" into klp-dev

parents 63169fb9 973f3b4e
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;
                }
            }