mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Allow touches through Taskbar when dragging to home screen
Setting visibleInsets to (almost) empty ensures the drag events get sent to launcher. Test: Drag a taskbar item on home, ensure it moves when events are within the taskbar insets Bug: 182079330 Bug: 171917176 Change-Id: Ida6a4a94a3fd2927d18245f45ed3e8d1701b9833
This commit is contained in:
@@ -83,10 +83,15 @@ public class TaskbarContainerView extends BaseDragLayer<TaskbarActivityContext>
|
||||
|
||||
private ViewTreeObserverWrapper.OnComputeInsetsListener createTaskbarInsetsComputer() {
|
||||
return insetsInfo -> {
|
||||
if (getAlpha() < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD) {
|
||||
// We're invisible, let touches pass through us.
|
||||
if (getAlpha() < AlphaUpdateListener.ALPHA_CUTOFF_THRESHOLD
|
||||
|| mTaskbarView.isDraggingItem()) {
|
||||
// We're invisible or dragging out of taskbar, let touches pass through us.
|
||||
insetsInfo.touchableRegion.setEmpty();
|
||||
insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION);
|
||||
// TODO(b/182234653): Shouldn't need to do this, but for the meantime, reporting
|
||||
// that visibleInsets is empty allows DragEvents through. Setting them as completely
|
||||
// empty reverts to default behavior, so set 1 px instead.
|
||||
insetsInfo.visibleInsets.set(0, 0, 0, 1);
|
||||
} else {
|
||||
// We're visible again, accept touches anywhere in our bounds.
|
||||
insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_FRAME);
|
||||
|
||||
Reference in New Issue
Block a user