Skip to content

fix(desktop): restore layout control hit targets - #10673

Merged
juliusmarminge merged 4 commits into
mainfrom
fix-layout-control-hit-targets
Sep 8, 2026
Merged

fix(desktop): restore layout control hit targets#10673
juliusmarminge merged 4 commits into
mainfrom
fix-layout-control-hit-targets

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Sep 8, 2026

Copy link
Copy Markdown
Member

Electron 44 makes app-region inherit into header children. Later header rectangles cover the fixed layout buttons, leaving only their thin edges clickable.

Reset direct children of each drag region with -webkit-app-region: initial. This stops inherited rectangles from covering controls while preserving the parent titlebar's drag area. Explicit none is unsuitable here: Chromium converts it to no-drag, which removes the children's area from the draggable titlebar. The base-layer rule preserves explicit drag/no-drag utilities.

Validation:

  • An isolated Electron 44.1.0 fixture confirms explicit none computes to no-drag, while initial computes to the neutral none state. The header retains drag and its button retains no-drag.
  • The actual stylesheet compiles with the repository's Tailwind version. Formatting and whitespace checks pass.
  • Fresh source audit found no issues; the diff is limited to the shared CSS rule.
  • All executed CI checks pass. Macroscope approved the current commit and CodeRabbit found no actionable issues. Bugbot remains unavailable due to the team spending limit.
  • Julius verified that the controls remain clickable and dragging empty titlebar space moves the window again with the corrected CSS. Julius is handling the interaction recording.

Closes #10661

Note

Fix drag-region hit targets by resetting -webkit-app-region for direct children

Adds a base-layer CSS rule in index.css that resets -webkit-app-region to its initial value for direct children of .drag-region. Existing unlayered selectors for buttons, inputs, textareas, selects, and links still mark those controls as no-drag and take precedence over the layered reset. This restores correct click behavior for layout controls inside frameless titlebar drag regions.

Macroscope summarized 7862a3c.

Summary by CodeRabbit

  • Bug Fixes
    • Improved title bar dragging behavior in the desktop app.
    • Interactive child elements now avoid unintentionally creating draggable areas while preserving explicit drag and no-drag controls.

Model: GPT-6. Harness: Codex.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Sep 8, 2026
Comment thread apps/web/src/index.css Outdated
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ The exact PR base did not have a successful artifact. Baseline uses the latest successful main measurement shown below.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 11.3 KiB 13.6 KiB +2.3 KiB (+20.3%) 15.1 KiB
Codex Thread snapshot wire 5.5 KiB 7.0 KiB +1.6 KiB (+29.0%) 7.3 KiB
Codex Live turn WebSocket wire 5.9 KiB 6.6 KiB +730 B (+12.2%) 7.8 KiB
Codex Live turn WebSocket decoded 49.7 KiB 57.1 KiB +7.3 KiB (+14.7%) 66.4 KiB
Codex Live turn messages 16 10 −6 (−37.5%) 21
Claude Total thread wire 11.3 KiB 13.6 KiB +2.3 KiB (+20.1%) 15.1 KiB
Claude Thread snapshot wire 5.5 KiB 7.0 KiB +1.6 KiB (+28.6%) 7.3 KiB
Claude Live turn WebSocket wire 5.9 KiB 6.6 KiB +728 B (+12.1%) 7.8 KiB
Claude Live turn WebSocket decoded 50.6 KiB 57.9 KiB +7.3 KiB (+14.5%) 66.4 KiB
Claude Live turn messages 16 10 −6 (−37.5%) 21

Baseline: 83d769f · PR result: 7862a3c · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 7862a3c

Macroscope's review found this PR approvable — This is a focused desktop UI bug fix confined to titlebar drag-region hit testing. It preserves explicit no-drag controls and introduces no schema, infrastructure, security, billing, or static-analysis changes.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 64453bd3-afed-4384-a810-56b13f43757f

📥 Commits

Reviewing files that changed from the base of the PR and between f7deb75 and 7862a3c.

📒 Files selected for processing (1)
  • apps/web/src/index.css

Included review availability: Your plan provides up to 10 included reviews per hour; 5 remain after this review.


📝 Walkthrough

Walkthrough

The Electron drag-region child reset now uses initial instead of none. This preserves parent titlebar dragging while preventing child elements from creating drag rectangles.

Changes

Drag-region behavior

Layer / File(s) Summary
Reset child drag regions
apps/web/src/index.css
The direct child reset uses initial. Explicit drag and no-drag utilities retain precedence.

Priority: ➖ Normal — Impact reflects medium issue severity.

Estimated code review effort: 2 (Simple) | ~5 minutes

Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to 7862a

Desktop titlebar children regain normal pointer interaction while titlebar dragging and explicit drag controls remain preserved. No current merge-blocking risk is identified.

Suggested reviewers: bil0000, maria-rcks, t3dotgg

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The CSS change directly addresses issue [#10661] by preventing inherited drag-region rectangles from covering the sidebar control while preserving titlebar dragging and explicit no-drag utilities.
Out of Scope Changes check ✅ Passed The provided changes are focused on restoring interactive hit targets within Electron drag regions. No unrelated code changes are identified.
Title check ✅ Passed The title clearly identifies the desktop fix and the restoration of layout control hit targets.
Description check ✅ Passed The description clearly explains what changed, why the change is needed, the interaction impact, validation performed, and the linked issue. It does not reproduce the template headings or include the …
Full details: Docstring Coverage

Explanation

Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 1 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix-layout-control-hit-targets

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XS 0-9 changed lines (additions + deletions). labels Sep 8, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 8, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 8, 2026 05:04

Dismissing prior approval to re-evaluate f7deb75

@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). and removed size:S 10-29 changed lines (additions + deletions). labels Sep 8, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 8, 2026
@macroscopeapp
macroscopeapp Bot dismissed their stale review September 8, 2026 05:12

Dismissing prior approval to re-evaluate 7862a3c

@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Sep 8, 2026
@juliusmarminge
juliusmarminge merged commit 349ce30 into main Sep 8, 2026
25 checks passed
@juliusmarminge
juliusmarminge deleted the fix-layout-control-hit-targets branch September 8, 2026 05:23
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 8, 2026
## What's Changed
* fix(web): open proactive panels when entering threads by @maria-rcks in pingdotgg/t3code#10610
* fix(native): wait for the KDE feedback test listener by @juliusmarminge in pingdotgg/t3code#10645
* fix(desktop): resolve local media linked from remote threads by @maria-rcks in pingdotgg/t3code#10619
* fix(web): add bottom padding to project actions header by @flamboh in pingdotgg/t3code#10634
* fix(web): update machines together in auto balance by @maria-rcks in pingdotgg/t3code#10596
* fix(preview): transfer recordings to the agent environment by @maria-rcks in pingdotgg/t3code#10572
* fix(web): navigate markdown images as galleries by @maria-rcks in pingdotgg/t3code#10625
* chore: upgrade to TypeScript 7.0.2 by @juliusmarminge in pingdotgg/t3code#10663
* fix: hide email-bearing account labels in usage limits by @juliusmarminge in pingdotgg/t3code#10668
* fix(web): keep scroll-to-end button close to composer by @Bil0000 in pingdotgg/t3code#10543
* chore(deps): upgrade Effect to rc.112 and Alchemy to beta.76 by @juliusmarminge in pingdotgg/t3code#10652
* chore(refs): sync Effect reference to rc.112 by @juliusmarminge in pingdotgg/t3code#10653
* chore(refs): sync Alchemy reference to beta.76 by @juliusmarminge in pingdotgg/t3code#10654
* fix: generate thread titles with the selected model across connections by @Bil0000 in pingdotgg/t3code#10526
* fix(desktop): enable context menus in the browser by @juliusmarminge in pingdotgg/t3code#10670
* fix(desktop): stop generating declarations during bundling by @juliusmarminge in pingdotgg/t3code#10679
* fix(desktop): restore layout control hit targets by @juliusmarminge in pingdotgg/t3code#10673


**Full Changelog**: pingdotgg/t3code@v0.0.41-nightly.20260908.1377...v0.0.41-nightly.20260908.1387

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.41-nightly.20260908.1387
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Sidebar New thread button ignores hover and clicks on Linux nightly

1 participant