canvas edit mode movement fixed
This commit is contained in:
@@ -186,8 +186,11 @@ pub async fn execute_edit_action(
|
|||||||
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
||||||
if num_fields > 0 {
|
if num_fields > 0 {
|
||||||
let current_field = state.current_field();
|
let current_field = state.current_field();
|
||||||
let new_field = (current_field + 1) % num_fields;
|
let last_field_index = num_fields - 1;
|
||||||
state.set_current_field(new_field);
|
// Prevent cycling forward
|
||||||
|
if current_field < last_field_index {
|
||||||
|
state.set_current_field(current_field + 1);
|
||||||
|
}
|
||||||
let current_input = state.get_current_input();
|
let current_input = state.get_current_input();
|
||||||
let max_pos = current_input.len();
|
let max_pos = current_input.len();
|
||||||
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
||||||
@@ -198,12 +201,9 @@ pub async fn execute_edit_action(
|
|||||||
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
||||||
if num_fields > 0 {
|
if num_fields > 0 {
|
||||||
let current_field = state.current_field();
|
let current_field = state.current_field();
|
||||||
let new_field = if current_field == 0 {
|
if current_field > 0 {
|
||||||
num_fields - 1
|
state.set_current_field(current_field - 1);
|
||||||
} else {
|
}
|
||||||
current_field - 1
|
|
||||||
};
|
|
||||||
state.set_current_field(new_field);
|
|
||||||
let current_input = state.get_current_input();
|
let current_input = state.get_current_input();
|
||||||
let max_pos = current_input.len();
|
let max_pos = current_input.len();
|
||||||
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
||||||
@@ -227,18 +227,16 @@ pub async fn execute_edit_action(
|
|||||||
Ok("".to_string())
|
Ok("".to_string())
|
||||||
}
|
}
|
||||||
"move_up" => {
|
"move_up" => {
|
||||||
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
let current_field = state.current_field();
|
||||||
if num_fields > 0 {
|
// Prevent moving up from the first field
|
||||||
let current_field = state.current_field();
|
if current_field > 0 {
|
||||||
if current_field > 0 {
|
let new_field = current_field - 1;
|
||||||
let new_field = current_field - 1;
|
state.set_current_field(new_field);
|
||||||
state.set_current_field(new_field);
|
let current_input = state.get_current_input();
|
||||||
let current_input = state.get_current_input();
|
let max_pos = current_input.len();
|
||||||
let max_pos = current_input.len();
|
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
||||||
state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Ok("".to_string())
|
Ok("ahoj".to_string())
|
||||||
}
|
}
|
||||||
"move_down" => {
|
"move_down" => {
|
||||||
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
let num_fields = AddTableState::INPUT_FIELD_COUNT;
|
||||||
|
|||||||
Reference in New Issue
Block a user