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

Commit 574b37ec authored by Adam Powell's avatar Adam Powell
Browse files

Fix bug 3071869 - text anchors are now treated as application sub-panels.

This places text anchors on a layer above normal application panels,
ensuring that they stay above things like the browser autocompletion
list.

Change-Id: I4ee0aea7416a2dafd7e48a7a39acf949af5db3e9
parent fd124570
Loading
Loading
Loading
Loading
+21 −1
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ public class PopupWindow {
    private Drawable mBelowAnchorBackgroundDrawable;

    private boolean mAboveAnchor;
    private int mWindowLayoutType = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;
    
    private OnDismissListener mOnDismissListener;
    private boolean mIgnoreCheekPress = false;
@@ -622,6 +623,25 @@ public class PopupWindow {
        mLayoutInScreen = enabled;
    }

    /**
     * Set the layout type for this window. Should be one of the TYPE constants defined in
     * {@link WindowManager.LayoutParams}.
     *
     * @param layoutType Layout type for this window.
     * @hide
     */
    public void setWindowLayoutType(int layoutType) {
        mWindowLayoutType = layoutType;
    }

    /**
     * @return The layout type for this window.
     * @hide
     */
    public int getWindowLayoutType() {
        return mWindowLayoutType;
    }

    /**
     * <p>Change the width and height measure specs that are given to the
     * window manager by the popup.  By default these are 0, meaning that
@@ -911,7 +931,7 @@ public class PopupWindow {
            p.format = PixelFormat.TRANSLUCENT;
        }
        p.flags = computeFlags(p.flags);
        p.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;
        p.type = mWindowLayoutType;
        p.token = token;
        p.softInputMode = mSoftInputMode;
        p.setTitle("PopupWindow:" + Integer.toHexString(hashCode()));
+2 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewDebug;
import android.view.WindowManager;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewParent;
import android.view.ViewRoot;
@@ -7675,6 +7676,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    com.android.internal.R.attr.textSelectHandleWindowStyle);
            mContainer.setSplitTouchEnabled(true);
            mContainer.setClippingEnabled(false);
            mContainer.setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL);

            setOrientation(pos);
        }