Reset wrapping in label tooltip (#7535)

* follow up to #7514 

That PR changed the tooltip to preserve the wrapping, which made the
tooltip kind of useless. With this PR the wrapping is reset for the
tooltip.
This commit is contained in:
Lucas Meurer 2025-09-11 17:18:53 +02:00 committed by GitHub
parent b0c568a78e
commit 2d3ecd3494
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 4 deletions

View File

@ -281,8 +281,14 @@ impl Widget for Label {
if ui.is_rect_visible(response.rect) {
if show_tooltip_when_elided && galley.elided {
// Keep the sections and text, but reset everything else (especially wrapping):
let job = crate::text::LayoutJob {
sections: galley.job.sections.clone(),
text: galley.job.text.clone(),
..crate::text::LayoutJob::default()
};
// Show the full (non-elided) text on hover:
response = response.on_hover_text(galley.job.clone());
response = response.on_hover_text(job);
}
let response_color = if interactive {

View File

@ -18,7 +18,7 @@ fn hovering_should_preserve_text_format() {
let mut harness = Harness::builder().with_size((200.0, 70.0)).build_ui(|ui| {
ui.add(
Label::new(
RichText::new("Long text that should be elided and has lots of styling")
RichText::new("Long text that should be elided and has lots of styling and is long enough to have multiple lines.")
.italics()
.underline()
.color(Color32::LIGHT_BLUE),

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0fdc04ac6f24c20688c846af8759f91db2b3f8a93abcd0c5669c9050b98451ea
size 10152
oid sha256:cac533a01c65c8eef093efcd4c9036da50f898ea2436612990f4c2365c98ad83
size 12126