diff --git a/src/app/view/mod.rs b/src/app/view/mod.rs index f59c33cec..86f997cbe 100644 --- a/src/app/view/mod.rs +++ b/src/app/view/mod.rs @@ -2528,15 +2528,33 @@ fn doc_tab_context_menu( ) -> Element<'static, Message> { const MENU_W: f32 = 210.0; - let item = |label: &'static str, msg: Option| { - let mut item = button(text(label).size(12)) - .style(button::subtle) - .padding([4, 12]) - .width(Fill); + let item = |label: &'static str, msg: Option| -> Element<'static, Message> { + let enabled = msg.is_some(); + + let content = container(text(label).size(12)) + .padding([4, 12]) + .width(Fill) + .style(move |theme: &Theme| { + let palette = theme.palette(); + + container::Style { + text_color: Some(if enabled { + palette.background.base.text + } else { + palette.background.base.text.scale_alpha(0.42) + }), + ..Default::default() + } + }); + if let Some(msg) = msg { - item = item.on_press(msg); + mouse_area(content) + .on_press(msg) + .interaction(iced::mouse::Interaction::Pointer) + .into() + } else { + content.into() } - item }; let mut menu = column![ diff --git a/src/ui/statusbar/mod.rs b/src/ui/statusbar/mod.rs index 7736d3028..0a84008c1 100644 --- a/src/ui/statusbar/mod.rs +++ b/src/ui/statusbar/mod.rs @@ -850,21 +850,26 @@ fn osnap_btn<'a>( // ── Helpers ─────────────────────────────────────────────────────────────── fn layout_tab_context_menu(name: String) -> Element<'static, Message> { - let item = |label: std::borrow::Cow<'static, str>, msg: Message| { - button(text(label).size(12)) - .on_press(msg) - .style(button::subtle) + let rename = mouse_area( + container(text(t!("Rename")).size(12)) .padding([4, 12]) - .width(Length::Fill) - }; + .width(Length::Fill), + ) + .on_press(Message::LayoutRenameStart(name.clone())) + .interaction(iced::mouse::Interaction::Pointer); + + let delete = mouse_area( + container(text(t!("Delete")).size(12)) + .padding([4, 12]) + .width(Length::Fill), + ) + .on_press(Message::LayoutDelete(name)) + .interaction(iced::mouse::Interaction::Pointer); container( - column![ - item(t!("Rename"), Message::LayoutRenameStart(name.clone())), - item(t!("Delete"), Message::LayoutDelete(name)), - ] - .spacing(0) - .width(160), + column![rename, delete] + .spacing(0) + .width(160), ) .style(container::bordered_box) .padding([4, 0])