gpui: Fix text hover & active style (#24723)
Release Notes: - N/A --- Fix this long-standing issue so that we can support Link hover colors. And renamed `text_layout` example to `text_style`. --- I spent some time studying the process of this text style change and found it a bit complicated. At first, I thought there was a problem with refine and it was not passed properly. After changing it, I found that it was not the problem. Then I found that it was because `TextRun` had already stored the `color`, `background`, `underline`, `strikethrough` in TextRun in the `request_layout` stage. They area calculate at the `request_layout` stage, but request_layout stage there was no `hitbox`, so the hover state was not obtained. ```bash cargo run -p gpui --example text_style ``` https://github.com/user-attachments/assets/24f88f73-775e-41d3-a502-75a7a39ac82b --------- Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
This commit is contained in:
parent
8ee6a2b454
commit
ffdf725f32
4 changed files with 58 additions and 17 deletions
|
@ -8,11 +8,13 @@ struct HelloWorld {}
|
|||
impl Render for HelloWorld {
|
||||
fn render(&mut self, _window: &mut Window, _cx: &mut Context<Self>) -> impl IntoElement {
|
||||
div()
|
||||
.font_family(".SystemUIFont")
|
||||
.bg(gpui::white())
|
||||
.flex()
|
||||
.flex_col()
|
||||
.gap_2()
|
||||
.p_4()
|
||||
.gap_4()
|
||||
.size_full()
|
||||
.child(div().child("Text left"))
|
||||
.child(div().text_center().child("Text center"))
|
||||
|
@ -71,6 +73,24 @@ impl Render for HelloWorld {
|
|||
.child("100%"),
|
||||
),
|
||||
)
|
||||
.child(
|
||||
div()
|
||||
.id("Text Link")
|
||||
.text_color(gpui::blue())
|
||||
.cursor_pointer()
|
||||
.active(|this| {
|
||||
this.text_color(gpui::white())
|
||||
.bg(gpui::blue())
|
||||
.text_decoration_1()
|
||||
.text_decoration_wavy()
|
||||
})
|
||||
.hover(|this| {
|
||||
this.text_color(gpui::rgb(0x973717))
|
||||
.bg(gpui::yellow())
|
||||
.text_decoration_1()
|
||||
})
|
||||
.child("Text with hover, active styles"),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue