fix: Prevent context menu from closing prematurely on mouse movement and hover interactions #1
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue