fix(menu): panic when right-clicking a submenu
This commit is contained in:
parent
a5267e623f
commit
3a8ebf9197
2 changed files with 56 additions and 43 deletions
|
|
@ -30,6 +30,7 @@ pub enum Message {
|
|||
WindowClose,
|
||||
Surface(cosmic::surface::Action),
|
||||
ToggleHideContent,
|
||||
ToggleSomeAction,
|
||||
WindowNew,
|
||||
}
|
||||
|
||||
|
|
@ -82,6 +83,7 @@ impl cosmic::Application for App {
|
|||
|
||||
/// Handle application events here.
|
||||
fn update(&mut self, message: Self::Message) -> Task<Self::Message> {
|
||||
tracing::error!("Clicked {message:?}");
|
||||
match message {
|
||||
Message::Clicked => {
|
||||
self.button_label = format!("Clicked {message:?}");
|
||||
|
|
@ -91,9 +93,10 @@ impl cosmic::Application for App {
|
|||
cosmic::app::Action::Surface(action),
|
||||
));
|
||||
}
|
||||
Message::WindowClose => {}
|
||||
Message::ToggleHideContent => {}
|
||||
Message::WindowNew => {}
|
||||
Message::WindowClose |
|
||||
Message::ToggleHideContent |
|
||||
Message::ToggleSomeAction |
|
||||
Message::WindowNew=> {}
|
||||
}
|
||||
|
||||
Task::none()
|
||||
|
|
@ -102,7 +105,7 @@ impl cosmic::Application for App {
|
|||
/// Creates a view after each update.
|
||||
fn view(&self) -> Element<'_, Self::Message> {
|
||||
let widget = cosmic::widget::context_menu(
|
||||
cosmic::widget::button::text(self.button_label.to_string()).on_press(Message::Clicked),
|
||||
cosmic::widget::button::text(self.button_label.clone()).on_press(Message::Clicked),
|
||||
self.context_menu(),
|
||||
)
|
||||
.on_surface_action(Message::Surface);
|
||||
|
|
@ -131,7 +134,14 @@ impl App {
|
|||
None,
|
||||
self.hide_content,
|
||||
ContextMenuAction::ToggleHideContent,
|
||||
)],
|
||||
),
|
||||
menu::Item::CheckBox(
|
||||
"Test content",
|
||||
None,
|
||||
self.hide_content,
|
||||
ContextMenuAction::ToggleSomeAction,
|
||||
)
|
||||
],
|
||||
),
|
||||
menu::Item::Divider,
|
||||
menu::Item::Button("Quit", None, ContextMenuAction::WindowClose),
|
||||
|
|
@ -144,6 +154,7 @@ impl App {
|
|||
pub enum ContextMenuAction {
|
||||
WindowClose,
|
||||
ToggleHideContent,
|
||||
ToggleSomeAction,
|
||||
WindowNew,
|
||||
}
|
||||
|
||||
|
|
@ -153,6 +164,7 @@ impl menu::Action for ContextMenuAction {
|
|||
match self {
|
||||
ContextMenuAction::WindowClose => Message::WindowClose,
|
||||
ContextMenuAction::ToggleHideContent => Message::ToggleHideContent,
|
||||
ContextMenuAction::ToggleSomeAction => Message::ToggleSomeAction,
|
||||
ContextMenuAction::WindowNew => Message::WindowNew,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue