Merge pull request 'fix: Prevent context menu from closing prematurely on mouse movement and hover interactions' (#1) from pxlman/Acord:main into main

Reviewed-on: #1

Thank you!
This commit is contained in:
jess 2026-05-06 02:06:58 +00:00
commit 15415db1af
2 changed files with 10 additions and 2 deletions

View File

@ -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;

View File

@ -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()
};