diff --git a/src/lib/layout/Gutter.css b/src/lib/layout/Gutter.css index fe4d777..d405d61 100644 --- a/src/lib/layout/Gutter.css +++ b/src/lib/layout/Gutter.css @@ -1,6 +1,8 @@ -/* The hitbox is invisible; we render a 4px visible line in the middle - via a pseudo-element so the grab area is generous while the visual - stays thin. */ +/* The hitbox is invisible (14px wide); we render a 4px visible line in + the middle via a pseudo-element so the grab area is generous while the + visual stays thin. Color is bumped above the terminal background so the + line is actually visible — at #1a1a1a on #0c0c0c it was nearly invisible + and users couldn't find inner gutters. */ .gutter { background: transparent; user-select: none; @@ -9,7 +11,7 @@ .gutter::before { content: ""; position: absolute; - background: #1a1a1a; + background: #2f2f2f; transition: background 0.12s; } .gutter-h::before { @@ -26,7 +28,9 @@ height: 4px; transform: translateY(-50%); } -.gutter:hover::before, -.gutter.active::before { - background: #3a5a8c; +.gutter:hover::before { + background: #6a8bc0; +} +.gutter.active::before { + background: #5a8cd8; } diff --git a/src/lib/layout/Gutter.tsx b/src/lib/layout/Gutter.tsx index 241dc7b..e37866c 100644 --- a/src/lib/layout/Gutter.tsx +++ b/src/lib/layout/Gutter.tsx @@ -17,7 +17,7 @@ import { type Box, type GutterInfo, MIN_PANE_PX } from "./tree"; * `onArmedChange` is called with the would-be box of the promoted pane. * On release while armed, `onPromote` fires. */ -const HITBOX_PX = 8; +const HITBOX_PX = 14; /** Cursor must reach this fraction across the sibling pane (in the exit * direction) to arm the promote gesture. 0.5 = middle of the sibling. */ const PROMOTE_TRIGGER_FRAC = 0.5; @@ -105,28 +105,8 @@ export default function Gutter({ // Promote gesture: armed iff cursor is inside the sibling box AND // past PROMOTE_TRIGGER_FRAC along the exit direction. - // TEMP DEBUG: trace which gutter is being dragged + the eval result. - // Remove once the issue is diagnosed. if (info.promote) { - const armed = isArmed(info.promote, xFrac, yFrac); - console.log("[gutter-drag]", { - orient: info.orientation, - gutterAt: info.orientation === "h" - ? `x=${info.box.left.toFixed(2)}` - : `y=${info.box.top.toFixed(2)}`, - cursor: { x: xFrac.toFixed(3), y: yFrac.toFixed(3) }, - siblingBox: info.promote.siblingBox, - exitDirection: info.promote.exitDirection, - armed, - }); - setArmed(armed); - } else { - console.log("[gutter-drag] NO promote (root split)", { - orient: info.orientation, - gutterAt: info.orientation === "h" - ? `x=${info.box.left.toFixed(2)}` - : `y=${info.box.top.toFixed(2)}`, - }); + setArmed(isArmed(info.promote, xFrac, yFrac)); } }, [containerRef, info, flushPending, setArmed], @@ -172,7 +152,7 @@ export default function Gutter({ height: `${info.box.height * 100}%`, width: `${HITBOX_PX}px`, cursor: "col-resize", - zIndex: 10, + zIndex: 100, } : { position: "absolute", @@ -181,7 +161,7 @@ export default function Gutter({ width: `${info.box.width * 100}%`, height: `${HITBOX_PX}px`, cursor: "row-resize", - zIndex: 10, + zIndex: 100, }; return (