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:
commit
15415db1af
|
|
@ -2485,6 +2485,8 @@ impl EditorState {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update(&mut self, message: Message) {
|
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) {
|
if self.render_mode == RenderMode::View && !Self::message_is_view_safe(&message) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -2501,7 +2503,11 @@ impl EditorState {
|
||||||
|
|
||||||
let preserve_context_menu = matches!(
|
let preserve_context_menu = matches!(
|
||||||
&message,
|
&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() {
|
if !preserve_context_menu && self.context_menu.is_some() {
|
||||||
self.context_menu = None;
|
self.context_menu = None;
|
||||||
|
|
|
||||||
|
|
@ -528,6 +528,8 @@ impl TableBlock {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn handle(&mut self, msg: TableMessage) {
|
pub fn handle(&mut self, msg: TableMessage) {
|
||||||
|
#[cfg(debug_assertions)]
|
||||||
|
println!("Table {:?} got message: {:?}", self.id, msg);
|
||||||
match msg {
|
match msg {
|
||||||
TableMessage::CellChanged(row, col, val) => {
|
TableMessage::CellChanged(row, col, val) => {
|
||||||
if self.read_only {
|
if self.read_only {
|
||||||
|
|
@ -1502,7 +1504,7 @@ where
|
||||||
MouseArea::new(cell_container)
|
MouseArea::new(cell_container)
|
||||||
.on_press(on_msg(TableMessage::SelectCell(r, c)))
|
.on_press(on_msg(TableMessage::SelectCell(r, c)))
|
||||||
.on_double_click(on_msg(TableMessage::EditCell(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)))
|
.on_enter(on_msg(TableMessage::CellEnter(r, c)))
|
||||||
.into()
|
.into()
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue