mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 18:58:19 +00:00
Move system gesture exclusion rect to LauncherRootView
We translate DragLayer when going to -1, so the exclusion rect was off screen when you went back from there. Bug: 129297464 Change-Id: Ie079b2dadaca07886408ee9c1d130d7ac351a61d
This commit is contained in:
@@ -12,12 +12,16 @@ import android.graphics.Insets;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.RectF;
|
||||
import android.os.Build;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewDebug;
|
||||
import android.view.WindowInsets;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class LauncherRootView extends InsettableFrameLayout {
|
||||
|
||||
private final Launcher mLauncher;
|
||||
@@ -30,8 +34,14 @@ public class LauncherRootView extends InsettableFrameLayout {
|
||||
@ViewDebug.ExportedProperty(category = "launcher")
|
||||
private final RectF mTouchExcludeRegion = new RectF();
|
||||
|
||||
@ViewDebug.ExportedProperty(category = "launcher")
|
||||
private static final List<Rect> SYSTEM_GESTURE_EXCLUSION_RECT =
|
||||
Collections.singletonList(new Rect());
|
||||
|
||||
private View mAlignedView;
|
||||
private WindowStateListener mWindowStateListener;
|
||||
@ViewDebug.ExportedProperty(category = "launcher")
|
||||
private boolean mDisallowBackGesture;
|
||||
|
||||
public LauncherRootView(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -177,6 +187,24 @@ public class LauncherRootView extends InsettableFrameLayout {
|
||||
return super.dispatchTouchEvent(ev);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||
super.onLayout(changed, l, t, r, b);
|
||||
SYSTEM_GESTURE_EXCLUSION_RECT.get(0).set(l, t, r, b);
|
||||
setDisallowBackGesture(mDisallowBackGesture);
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.Q)
|
||||
public void setDisallowBackGesture(boolean disallowBackGesture) {
|
||||
if (!Utilities.ATLEAST_Q) {
|
||||
return;
|
||||
}
|
||||
mDisallowBackGesture = disallowBackGesture;
|
||||
setSystemGestureExclusionRects(mDisallowBackGesture
|
||||
? SYSTEM_GESTURE_EXCLUSION_RECT
|
||||
: Collections.emptyList());
|
||||
}
|
||||
|
||||
public interface WindowStateListener {
|
||||
|
||||
void onWindowFocusChanged(boolean hasFocus);
|
||||
|
||||
Reference in New Issue
Block a user