diff --git a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt index 5205da894e..a0ee361bcb 100644 --- a/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt +++ b/app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt @@ -22,6 +22,7 @@ import android.content.Intent import android.content.ServiceConnection import android.content.res.Configuration import android.graphics.Color +import android.graphics.Rect import android.graphics.drawable.GradientDrawable import android.os.Build import android.os.Bundle @@ -1601,7 +1602,9 @@ abstract class BaseEditorActivity : } // Filter out diagonal flings so only an intentional right swipe opens the drawer. - if (isDrawerOpenFling) { + // A horizontal fling that started on the bottom-sheet tab strip is the user + // scrolling tabs, not asking for the drawer. + if (isDrawerOpenFling && !isTouchOnBottomSheetTabs(e1)) { binding.editorDrawerLayout.openDrawer(GravityCompat.START) return true } @@ -1621,6 +1624,13 @@ abstract class BaseEditorActivity : return super.dispatchTouchEvent(ev) } + private fun isTouchOnBottomSheetTabs(ev: MotionEvent): Boolean { + val tabs = contentOrNull?.bottomSheet?.binding?.tabs ?: return false + val rect = Rect() + if (!tabs.getGlobalVisibleRect(rect)) return false + return rect.contains(ev.rawX.toInt(), ev.rawY.toInt()) + } + private fun showTooltip(tag: String) { TooltipManager.showIdeCategoryTooltip( context = this,