diff --git a/viewport/src/editor.rs b/viewport/src/editor.rs index fae94aa..68295de 100644 --- a/viewport/src/editor.rs +++ b/viewport/src/editor.rs @@ -2485,6 +2485,8 @@ impl EditorState { } pub fn update(&mut self, message: Message) { + #[cfg(debug_assertions)] + println!("Received message: {:?}", message); if self.render_mode == RenderMode::View && !Self::message_is_view_safe(&message) { return; } @@ -2501,7 +2503,11 @@ impl EditorState { let preserve_context_menu = matches!( &message, - Message::ShowContextMenu { .. } + Message::ShowContextMenu { .. } // Opening the menu + | Message::FocusedTableOp(..) // Menu item actions that operate on the focused table + | Message::TableMsg(_, TableMessage::CursorMove(_,_)) // Any table operation (including hover, cursor move) + | Message::TableMsg(_, TableMessage::CellEnter(_,_)) // Any table operation (including hover, cursor move) + | Message::HideContextMenu // Don't close before processing the close ); if !preserve_context_menu && self.context_menu.is_some() { self.context_menu = None; diff --git a/viewport/src/table_block.rs b/viewport/src/table_block.rs index 7021289..354528f 100644 --- a/viewport/src/table_block.rs +++ b/viewport/src/table_block.rs @@ -528,6 +528,8 @@ impl TableBlock { } pub fn handle(&mut self, msg: TableMessage) { + #[cfg(debug_assertions)] + println!("Table {:?} got message: {:?}", self.id, msg); match msg { TableMessage::CellChanged(row, col, val) => { if self.read_only { @@ -1502,7 +1504,7 @@ where MouseArea::new(cell_container) .on_press(on_msg(TableMessage::SelectCell(r, c))) .on_double_click(on_msg(TableMessage::EditCell(r, c))) - .on_right_press(on_msg(TableMessage::ContextMenu(r, c))) + .on_right_release(on_msg(TableMessage::ContextMenu(r, c))) .on_enter(on_msg(TableMessage::CellEnter(r, c))) .into() };