Fix dead-pane regression: drop the absolute highlight overlay
Round 12 painted the inner highlight ring through an absolutely positioned overlay that covered every glass panel. User reports the right pane was unclickable, the search bar wouldn't take input, and sidebar tab close buttons never appeared on hover. Even though the overlay div had no listeners, in this layout it was racing the parent's hit-test for the same pixels — the close glyph in `render_launcher_row` is `opacity(0)` until `group_hover` fires, and the overlay was preventing that hover from registering. Move the highlight onto each panel's own `.border_1()` so the ring is part of the panel paint, not a separate overlay. Painted, never hit-tested. The four wired callers (expanded sidebar, compact sidebar, main pane, command overlay panel) now each carry their inner border directly. `chrome::glass` deletes; nothing else used it. The 1 px brighter top-edge specular sliver from the design is gone — GPUI 0.2.2 has no asymmetric border colors and live clicks beat that single-pixel polish. cargo test --workspace: 440 passed, 0 failed.
This commit is contained in:
@@ -15,7 +15,6 @@ use crate::shell::chrome::command_match::{
|
||||
use crate::shell::chrome::command_rows::{
|
||||
render_action_rows, render_bookmark_rows, render_history_rows, render_tab_rows,
|
||||
};
|
||||
use crate::shell::chrome::glass::render_inner_highlight;
|
||||
|
||||
const COMMAND_PREFIX: &str = ">";
|
||||
|
||||
@@ -72,15 +71,15 @@ fn render_panel(
|
||||
.w(px(640.0))
|
||||
.rounded(px(16.0))
|
||||
.bg(rgba(PANEL_BG))
|
||||
.border_1()
|
||||
.border_color(rgba(PANEL_BORDER))
|
||||
.shadow(panel_shadow())
|
||||
.overflow_hidden()
|
||||
.relative()
|
||||
.flex()
|
||||
.flex_col()
|
||||
.child(render_header(query_label.clone(), needle.is_empty()))
|
||||
.child(render_results(snapshot, needle, selected_index, cx))
|
||||
.child(render_command_footer())
|
||||
.child(render_inner_highlight(16.0))
|
||||
.into_any_element()
|
||||
}
|
||||
|
||||
@@ -219,6 +218,7 @@ fn render_empty_state() -> AnyElement {
|
||||
}
|
||||
|
||||
const PANEL_BG: u32 = 0xfffffff5;
|
||||
const PANEL_BORDER: u32 = 0xffffff80;
|
||||
const BACKDROP_BG: u32 = 0x140f0a3d;
|
||||
const BADGE_BG: u32 = 0x281e140f;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user