fix(mobile): unblock file tree and git commit input on touch devices - #1
Open
schrodienieur wants to merge 1 commit into
Open
fix(mobile): unblock file tree and git commit input on touch devices#1schrodienieur wants to merge 1 commit into
schrodienieur wants to merge 1 commit into
Conversation
On phones/tablets (max-width: 767px) the editor panel (.workspace-center) is position:absolute; inset:0 and paints over the explorer/git/projects panels in DOM order, so with default pointer-events:auto it silently swallows every touch meant for the file tree and git commit input. Additionally, a long-press on a tree row or editor tab triggers the native text-selection callout (highlighting labels like the bottom-nav 'Files') and opens the context menu at the finger position, blocking scrolling and further taps. - overlays.css: in mobile panel-based views (explorer/projects/git/ settings), set .workspace-center to pointer-events:none so taps reach the active panel; restore pointer-events only in the editor view. - base.css: mark IDE chrome (activity bar, panels, bottom nav, tabs, chat, terminal, picker, browser panel) user-select:none with -webkit-touch-callout:none so long-press never starts native selection; keep the Monaco editor content selectable. - FileTree.tsx / EditorTabs.tsx: only open the context menu on a real mouse right-click (or macOS Ctrl/Cmd+click); ignore touch/pen contextmenu so a long-press on a row does not pop the menu over the UI. - file-tree.css: give .tree-row user-select:none, touch-action:manipulation and -webkit-tap-highlight-color:transparent; on coarse-pointer devices enlarge row tap targets (~40px) while keeping desktop density. Verified with real touch events (CDP Input.dispatchTouchEvent with mobile emulation): tapping a folder expands it (94->107 rows), long-press selects nothing and opens no menu, and the git commit textarea focuses.
schrodienieur
force-pushed
the
fix/mobile-touch-interactions
branch
from
August 13, 2026 00:58
c474ea6 to
5f4191a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
On phones/tablets (max-width: 767px), the mobile layout shows full-screen panels (explorer / git / projects / settings) switched via the bottom nav — there is no desktop-style sidebar. Two bugs made those panels unusable on touch:
.workspace-center) isposition:absolute; inset:0and paints after the other panels in DOM order, so with defaultpointer-events:autoit silently covers them and eats touch input.Bug demo
The screen recording below shows the first symptom on a real device: a drag/scroll gesture on the file tree leaves the list completely static — the gesture never reaches the tree's scroll container because the overlapping editor panel intercepts it. The fix removes
.workspace-centerfrom the hit-test path in panel-based views, so scroll and tap events reach the file tree (verified: tapping a folder expands it, and the tree scrolls).VID_20260813_075536.mp4
Changes
frontend/src/styles/ide/overlays.css— in mobile panel-based views (explorer / projects / git / settings), set.workspace-centertopointer-events:noneso taps reach the active panel; restored only in the editor view.frontend/src/styles/ide/base.css— IDE chrome (activity bar, panels, bottom nav, tabs, chat, terminal, picker, browser panel) is nowuser-select:none+-webkit-touch-callout:none, so long-press never starts a native selection; Monaco editor content stays selectable.frontend/src/components/sidebar/FileTree.tsx&frontend/src/components/editor/EditorTabs.tsx— context menu only opens on a real mouse right-click (or macOS Ctrl/Cmd+click); touch/pencontextmenuis ignored so a long-press doesn't pop the menu over the UI.frontend/src/styles/ide/file-tree.css—.tree-rowgetsuser-select:none,touch-action:manipulation,-webkit-tap-highlight-color:transparent; on coarse-pointer devices rows get ~40px tap targets while desktop density is unchanged.Verification
Tested with real touch events (CDP
Input.dispatchTouchEventwith mobile emulation) against the built app:No backend changes. Desktop behavior is unchanged (context-menu guard passes through real right-clicks; chrome no-select scoped to IDE chrome, editor still selectable).