a bug I've never run into
The previous commit was failing inside a test that I can't reproduce manually. Perhaps it's something about how often draw/update run in practice. Anyways, it's definitely uncovered a real issue.
This commit is contained in:
parent
6659de60f3
commit
22ad5373c5
|
@ -241,9 +241,6 @@ function Drawing.update(State)
|
|||
if State.lines.current_drawing == nil then return end
|
||||
local drawing = State.lines.current_drawing
|
||||
assert(drawing.mode == 'drawing')
|
||||
if drawing.y == nil then
|
||||
return -- first draw?
|
||||
end
|
||||
local pmx, pmy = App.mouse_x(), App.mouse_y()
|
||||
local mx = Drawing.coord(pmx-State.left, State.width)
|
||||
local my = Drawing.coord(pmy-drawing.y, State.width)
|
||||
|
|
|
@ -643,6 +643,7 @@ function test_undo_name_point()
|
|||
check_eq(p2.y, 36, 'F - test_undo_name_point/baseline/p2:y')
|
||||
check_nil(p2.name, 'F - test_undo_name_point/baseline/p2:name')
|
||||
check_eq(#Editor_state.history, 1, 'F - test_undo_name_point/baseline/history:1')
|
||||
--? print('a', Editor_state.lines.current_drawing)
|
||||
-- enter 'name' mode without moving the mouse
|
||||
edit.run_after_keychord(Editor_state, 'C-n')
|
||||
edit.run_after_textinput(Editor_state, 'A')
|
||||
|
@ -650,6 +651,7 @@ function test_undo_name_point()
|
|||
check_eq(p2.name, 'A', 'F - test_undo_name_point/baseline')
|
||||
check_eq(#Editor_state.history, 3, 'F - test_undo_name_point/baseline/history:2')
|
||||
check_eq(Editor_state.next_history, 4, 'F - test_undo_name_point/baseline/next_history')
|
||||
--? print('b', Editor_state.lines.current_drawing)
|
||||
-- undo
|
||||
edit.run_after_keychord(Editor_state, 'C-z')
|
||||
local drawing = Editor_state.lines[1]
|
||||
|
|
10
edit.lua
10
edit.lua
|
@ -352,7 +352,10 @@ function edit.keychord_pressed(State, chord, key)
|
|||
State.cursor1 = deepcopy(src.cursor)
|
||||
State.selection1 = deepcopy(src.selection)
|
||||
patch(State.lines, event.after, event.before)
|
||||
Text.redraw_all(State) -- if we're scrolling, reclaim all fragments to avoid memory leaks
|
||||
-- invalidate various cached bits of lines
|
||||
State.lines.current_drawing = nil
|
||||
-- if we're scrolling, reclaim all fragments to avoid memory leaks
|
||||
Text.redraw_all(State)
|
||||
schedule_save(State)
|
||||
end
|
||||
elseif chord == 'C-y' then
|
||||
|
@ -364,7 +367,10 @@ function edit.keychord_pressed(State, chord, key)
|
|||
State.cursor1 = deepcopy(src.cursor)
|
||||
State.selection1 = deepcopy(src.selection)
|
||||
patch(State.lines, event.before, event.after)
|
||||
Text.redraw_all(State) -- if we're scrolling, reclaim all fragments to avoid memory leaks
|
||||
-- invalidate various cached bits of lines
|
||||
State.lines.current_drawing = nil
|
||||
-- if we're scrolling, reclaim all fragments to avoid memory leaks
|
||||
Text.redraw_all(State)
|
||||
schedule_save(State)
|
||||
end
|
||||
-- clipboard
|
||||
|
|
Loading…
Reference in New Issue