Properly color file labels in project panel (#3794)

Also fixes an error with mouse listeners placement in
https://github.com/zed-industries/zed/pull/3792

Release Notes:

- N/A
This commit is contained in:
Kirill Bulatov 2023-12-23 02:01:55 +02:00 committed by GitHub
commit e1d8e2001b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 15 deletions

View File

@ -2840,17 +2840,13 @@ impl Element for EditorElement {
}
self.paint_text(text_bounds, &mut layout, cx);
cx.with_z_index(0, |cx| {
self.paint_mouse_listeners(bounds, gutter_bounds, text_bounds, &layout, cx);
});
if !layout.blocks.is_empty() {
cx.with_z_index(0, |cx| {
cx.with_element_id(Some("editor_blocks"), |cx| {
self.paint_blocks(bounds, &mut layout, cx);
self.paint_mouse_listeners(
bounds,
gutter_bounds,
text_bounds,
&layout,
cx,
);
});
})
}

View File

@ -1364,16 +1364,15 @@ impl ProjectPanel {
.map_or(false, |selection| selection.entry_id == entry_id);
let width = self.width.unwrap_or(px(0.));
let theme = cx.theme();
let filename_text_color = details
.git_status
.as_ref()
.map(|status| match status {
GitFileStatus::Added => theme.status().created,
GitFileStatus::Modified => theme.status().modified,
GitFileStatus::Conflict => theme.status().conflict,
GitFileStatus::Added => Color::Created,
GitFileStatus::Modified => Color::Modified,
GitFileStatus::Conflict => Color::Conflict,
})
.unwrap_or(theme.status().info);
.unwrap_or(Color::Default);
let file_name = details.filename.clone();
let icon = details.icon.clone();
@ -1407,9 +1406,7 @@ impl ProjectPanel {
if let (Some(editor), true) = (Some(&self.filename_editor), show_editor) {
div().h_full().w_full().child(editor.clone())
} else {
div()
.text_color(filename_text_color)
.child(Label::new(file_name))
div().child(Label::new(file_name).color(filename_text_color))
}
.ml_1(),
)

View File

@ -13,6 +13,7 @@ pub enum Color {
Hidden,
Info,
Modified,
Conflict,
Muted,
Placeholder,
Player(u32),
@ -28,6 +29,7 @@ impl Color {
Color::Muted => cx.theme().colors().text_muted,
Color::Created => cx.theme().status().created,
Color::Modified => cx.theme().status().modified,
Color::Conflict => cx.theme().status().conflict,
Color::Deleted => cx.theme().status().deleted,
Color::Disabled => cx.theme().colors().text_disabled,
Color::Hidden => cx.theme().status().hidden,