From bdb5df2bf29bfe600cac4bf57143b1d89781c8d0 Mon Sep 17 00:00:00 2001 From: Glint Dev Date: Wed, 22 Jul 2026 14:31:36 +0300 Subject: [PATCH] fix: only wrap hover/active elements in button when __on:click exists (no more phantom pointer cursor) --- src/renderer.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/renderer.rs b/src/renderer.rs index 0ef27be..56905a3 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -82,17 +82,18 @@ fn make_hoverable<'a>( return widget; } + let click_script = el.get_prop("__on:click").map(String::from); + + if click_script.is_none() { + return widget; + } + let hover = hover_props.clone(); let active = active_props.clone(); let cs = base_cs.clone(); let mut btn = button(widget).padding(0); - - if let Some(script) = el.get_prop("__on:click") { - btn = btn.on_press(crate::Message::EventTriggered(script.to_string())); - } else if has_hover || has_active { - btn = btn.on_press(crate::Message::EventTriggered(String::new())); - } + btn = btn.on_press(crate::Message::EventTriggered(click_script.unwrap())); btn.style(move |_, status| { let mut style_cs = cs.clone();