replacement in text_tests.lua at line 258
− edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line Editor_state.line_cache
replacement in text_tests.lua at line 815
[5.20197]→[5.337:432](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line Editor_state.line_cache
replacement in text_tests.lua at line 834
− edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in text_tests.lua at line 893
[5.21125]→[5.433:528](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in text_tests.lua at line 917
[5.22267]→[5.529:624](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
edit in text.lua at line 10
[5.53]→[5.3763:3787](∅→∅),
[5.3763]→[5.3763:3787](∅→∅) edit in text.lua at line 357
+ end
+
+ -- return the top y coordinate of a given line_index,
+ -- or nil if no part of it is on screen
+ function Text.starty(State, line_index)
+ -- duplicate some logic from love.draw
+ -- does not modify State (except to populate line_cache)
+ if line_index < State.screen_top1.line then return end
+ local loc2 = Text.to2(State, State.screen_top1)
+ local y = State.top
+ while true do
+ if State.lines[loc2.line].mode == 'drawing' then
+ y = y + Drawing_padding_top
+ end
+ if loc2.line == line_index then return y end
+ if State.lines[loc2.line].mode == 'text' then
+ y = y + State.line_height
+ elseif State.lines[loc2.line].mode == 'drawing' then
+ y = y + Drawing.pixels(State.lines[loc2.line].h, State.width) + Drawing_padding_bottom
+ end
+ if y + State.line_height > App.screen.height then break end
+ local next_loc2 = Text.next_screen_line(State, loc2)
+ if Text.eq2(next_loc2, loc2) then break end -- end of file
+ loc2 = next_loc2
+ end
replacement in text.lua at line 764
[5.1027]→[5.5239:5316](∅→∅),
[5.5239]→[5.5239:5316](∅→∅),
[5.2967]→[5.5317:5366](∅→∅) − if line_cache.starty == nil then return false end -- outside current page
− if y < line_cache.starty then return false end
+ local starty = Text.starty(State, line_index)
+ if starty == nil then return false end -- outside current page
+ if y < starty then return false end
replacement in text.lua at line 768
[5.481]→[5.5367:5544](∅→∅) − return y < line_cache.starty + State.line_height*(#line_cache.screen_line_starting_pos - Text.screen_line_index(line_cache.screen_line_starting_pos, line_cache.startpos) + 1)
+ return y < starty + State.line_height*(#line_cache.screen_line_starting_pos - Text.screen_line_index(line_cache.screen_line_starting_pos, line_cache.startpos) + 1)
replacement in text.lua at line 775
[5.1078]→[5.1933:2000](∅→∅) − assert(my >= line_cache.starty, 'failed to map y pixel to line')
+ local starty = Text.starty(State, line_index)
+ assert(my >= starty, 'failed to map y pixel to line')
replacement in text.lua at line 778
[5.904]→[5.5674:5704](∅→∅) − local y = line_cache.starty
replacement in source_text_tests.lua at line 258
− edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in source_text_tests.lua at line 815
[5.8436]→[5.8436:8531](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in source_text_tests.lua at line 834
− edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in source_text_tests.lua at line 893
[5.9604]→[5.9604:9699](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
replacement in source_text_tests.lua at line 917
[5.11105]→[5.11105:11200](∅→∅) − edit.draw(Editor_state) -- populate line_cache.starty for each line Editor_state.line_cache
+ edit.draw(Editor_state) -- populate line_cache.startpos for each line
edit in source_text.lua at line 9
[5.84187]→[5.84187:84211](∅→∅) edit in source_text.lua at line 433
+ -- return the top y coordinate of a given line_index,
+ -- or nil if no part of it is on screen
+ function Text.starty(State, line_index)
+ -- duplicate some logic from love.draw
+ -- does not modify State (except to populate line_cache)
+ if line_index < State.screen_top1.line then return end
+ local loc2 = Text.to2(State, State.screen_top1)
+ local y = State.top
+ while true do
+ if loc2.line == line_index then return y end
+ if State.lines[loc2.line].mode == 'text' then
+ y = y + State.line_height
+ elseif State.lines[loc2.line].mode == 'drawing' then
+ y = y + Drawing_padding_height + Drawing.pixels(State.lines[loc2.line].h, State.width)
+ end
+ if y + State.line_height > App.screen.height then break end
+ local next_loc2 = Text.next_screen_line(State, loc2)
+ if Text.eq2(next_loc2, loc2) then break end -- end of file
+ loc2 = next_loc2
+ end
+ end
+
replacement in source_text.lua at line 835
[5.128822]→[5.128822:128948](∅→∅) − if line_cache.starty == nil then return false end -- outside current page
− if y < line_cache.starty then return false end
+ local starty = Text.starty(State, line_index)
+ if starty == nil then return false end -- outside current page
+ if y < starty then return false end
replacement in source_text.lua at line 839
[5.4141]→[5.4141:4318](∅→∅) − return y < line_cache.starty + State.line_height*(#line_cache.screen_line_starting_pos - Text.screen_line_index(line_cache.screen_line_starting_pos, line_cache.startpos) + 1)
+ return y < starty + State.line_height*(#line_cache.screen_line_starting_pos - Text.screen_line_index(line_cache.screen_line_starting_pos, line_cache.startpos) + 1)
replacement in source_text.lua at line 846
[5.130885]→[5.4251:4318](∅→∅) − assert(my >= line_cache.starty, 'failed to map y pixel to line')
+ local starty = Text.starty(State, line_index)
+ assert(my >= starty, 'failed to map y pixel to line')
replacement in source_text.lua at line 849
[5.130960]→[5.130960:130990](∅→∅) − local y = line_cache.starty
edit in source_edit.lua at line 36
[5.18706]→[5.18706:18771](∅→∅) − -- a (y) coord in pixels (updated while painting screen),
edit in source_edit.lua at line 56
[5.153505]→[5.153505:153575](∅→∅) − -- starty, the y coord in pixels the line starts rendering from
edit in source_edit.lua at line 190
[5.20733]→[5.947:1046](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end
replacement in source_edit.lua at line 280
[5.21906]→[5.21906:22041](∅→∅) − local line_cache = State.line_cache[line_index]
− if Drawing.in_drawing(line, line_cache, x, y, State.left,State.right) then
+ if Drawing.in_drawing(State, line_index, x, y, State.left,State.right) then
edit in source_edit.lua at line 398
[5.158174]→[3.11:118](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end -- just in case we scroll
edit in source_edit.lua at line 502
[5.23303]→[5.23303:23345](∅→∅) − -- DON'T reset line_cache.starty here
edit in source_edit.lua at line 538
[5.163128]→[5.163128:163235](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end -- just in case we scroll
edit in source.lua at line 310
[5.448]→[5.175329:175443](∅→∅),
[5.175329]→[5.175329:175443](∅→∅) − for _,line_cache in ipairs(Editor_state.line_cache) do line_cache.starty = nil end -- just in case we scroll
replacement in select.lua at line 72
[5.1839]→[5.909:971](∅→∅),
[5.4181]→[5.909:971](∅→∅) − if y < State.line_cache[State.screen_top1.line].starty then
replacement in help.lua at line 3
− local line_cache = State.line_cache[drawing_index]
+ local starty = Text.starty(State, drawing_index)
replacement in help.lua at line 5
− local y = line_cache.starty+10
replacement in help.lua at line 51
− love.graphics.rectangle('fill', State.left,line_cache.starty, State.width, math.max(Drawing.pixels(drawing.h, State.width),y-line_cache.starty))
+ love.graphics.rectangle('fill', State.left,starty, State.width, math.max(Drawing.pixels(drawing.h, State.width),y-starty))
replacement in help.lua at line 56
− local line_cache = State.line_cache[drawing_index]
+ local starty = Text.starty(State, drawing_index)
replacement in help.lua at line 58
− local y = line_cache.starty+10
replacement in help.lua at line 132
− love.graphics.rectangle('fill', State.left,line_cache.starty, State.width, math.max(Drawing.pixels(drawing.h, State.width),y-line_cache.starty))
+ love.graphics.rectangle('fill', State.left,starty, State.width, math.max(Drawing.pixels(drawing.h, State.width),y-starty))
edit in edit.lua at line 34
[5.94979]→[5.94979:95044](∅→∅) − -- a (y) coord in pixels (updated while painting screen),
edit in edit.lua at line 54
[5.7961]→[5.7961:8031](∅→∅) − -- starty, the y coord in pixels the line starts rendering from
edit in edit.lua at line 185
[5.1966]→[5.935:1034](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end
replacement in edit.lua at line 276
− local line_cache = State.line_cache[line_index]
− if Drawing.in_drawing(line, line_cache, x, y, State.left,State.right) then
+ if Drawing.in_drawing(State, line_index, x, y, State.left,State.right) then
edit in edit.lua at line 394
[5.6985]→[3.134:241](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end -- just in case we scroll
edit in edit.lua at line 498
[5.14561]→[5.1250:1292](∅→∅) − -- DON'T reset line_cache.starty here
edit in edit.lua at line 534
[5.15878]→[5.1293:1400](∅→∅) − for _,line_cache in ipairs(State.line_cache) do line_cache.starty = nil end -- just in case we scroll
replacement in drawing_tests.lua at line 35
[5.48768]→[5.48768:48866](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 80
[5.49651]→[5.49651:49749](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 108
[5.50255]→[5.50255:50353](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 137
[5.50865]→[5.50865:50963](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 175
[5.51319]→[5.51319:51417](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 203
[5.51929]→[5.51929:52027](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 234
[5.52698]→[5.52698:52796](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 272
[5.53464]→[5.53464:53562](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 316
[5.54331]→[5.54331:54429](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
replacement in drawing_tests.lua at line 352
[5.55046]→[5.55046:55144](∅→∅) − check_eq(Editor_state.line_cache[1].starty, Editor_state.top+Drawing_padding_top, 'baseline/y')
+ check_eq(Text.starty(Editor_state, 1), Editor_state.top+Drawing_padding_top, 'baseline/y')
edit in drawing.lua at line 9
[5.1584]→[5.1584:1658](∅→∅) − local line_cache = State.line_cache[line_index]
− line_cache.starty = y
replacement in drawing.lua at line 10
[5.1580]→[5.1659:1779](∅→∅) − if pmx < State.right and pmy > line_cache.starty and pmy < line_cache.starty+Drawing.pixels(line.h, State.width) then
+ local starty = Text.starty(State, line_index)
+ if pmx < State.right and pmy > starty and pmy < starty+Drawing.pixels(line.h, State.width) then
replacement in drawing.lua at line 13
[5.1052]→[5.1780:1895](∅→∅) − love.graphics.rectangle('line', State.left,line_cache.starty, State.width,Drawing.pixels(line.h, State.width))
+ love.graphics.rectangle('line', State.left,starty, State.width,Drawing.pixels(line.h, State.width))
replacement in drawing.lua at line 15
[5.363]→[5.1896:1972](∅→∅) − icon[State.current_drawing_mode](State.right-22, line_cache.starty+4)
+ icon[State.current_drawing_mode](State.right-22, starty+4)
replacement in drawing.lua at line 17
[5.532]→[5.1973:2050](∅→∅) − icon[State.previous_drawing_mode](State.right-22, line_cache.starty+4)
+ icon[State.previous_drawing_mode](State.right-22, starty+4)
replacement in drawing.lua at line 32
[5.73]→[5.2051:2114](∅→∅) − local my = Drawing.coord(pmy-line_cache.starty, State.width)
+ local my = Drawing.coord(pmy-starty, State.width)
replacement in drawing.lua at line 40
[5.1083]→[5.2115:2194](∅→∅) − Drawing.draw_shape(line, shape, line_cache.starty, State.left,State.right)
+ Drawing.draw_shape(line, shape, starty, State.left,State.right)
replacement in drawing.lua at line 44
[5.93]→[5.2195:2278](∅→∅) − local function py(y) return Drawing.pixels(y, State.width)+line_cache.starty end
+ local function py(y) return Drawing.pixels(y, State.width)+starty end
replacement in drawing.lua at line 73
[5.1279]→[5.2279:2357](∅→∅) − Drawing.draw_pending_shape(line, line_cache.starty, State.left,State.right)
+ Drawing.draw_pending_shape(line, starty, State.left,State.right)
replacement in drawing.lua at line 211
[5.646]→[5.2358:2501](∅→∅) − function Drawing.in_drawing(drawing, line_cache, x,y, left,right)
− if line_cache.starty == nil then return false end -- outside current page
+ function Drawing.in_current_drawing(State, x,y, left,right)
+ return Drawing.in_drawing(State, State.lines.current_drawing_index, x,y, left,right)
+ end
+
+ function Drawing.in_drawing(State, line_index, x,y, left,right)
+ assert(State.lines[line_index].mode == 'drawing')
+ local starty = Text.starty(State, line_index)
+ if starty == nil then return false end -- outside current page
+ local drawing = State.lines[line_index]
replacement in drawing.lua at line 221
[5.5462]→[5.2502:2623](∅→∅) − return y >= line_cache.starty and y < line_cache.starty + Drawing.pixels(drawing.h, width) and x >= left and x < right
+ return y >= starty and y < starty + Drawing.pixels(drawing.h, width) and x >= left and x < right
replacement in drawing.lua at line 226
[5.2735]→[5.2735:2788](∅→∅) − local line_cache = State.line_cache[drawing_index]
+ local starty = Text.starty(State, drawing_index)
replacement in drawing.lua at line 228
[5.71]→[5.2789:2850](∅→∅) − local cy = Drawing.coord(y-line_cache.starty, State.width)
+ local cy = Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 253
[5.179]→[5.2851:2924](∅→∅),
[5.2924]→[5.31:66](∅→∅) − local line_cache = State.line_cache[State.lines.current_drawing_index]
− if line_cache.starty == nil then
+ local starty = Text.starty(State, State.lines.current_drawing_index)
+ if starty == nil then
replacement in drawing.lua at line 263
[5.134]→[5.2925:2988](∅→∅) − local my = Drawing.coord(pmy-line_cache.starty, State.width)
+ local my = Drawing.coord(pmy-starty, State.width)
replacement in drawing.lua at line 265
[5.1613]→[5.2989:3074](∅→∅) − if Drawing.in_drawing(drawing, line_cache, pmx,pmy, State.left,State.right) then
+ if Drawing.in_current_drawing(State, pmx,pmy, State.left,State.right) then
replacement in drawing.lua at line 275
[5.457]→[5.3075:3161](∅→∅) − if Drawing.in_drawing(drawing, line_cache, pmx, pmy, State.left,State.right) then
+ if Drawing.in_current_drawing(State, pmx, pmy, State.left,State.right) then
replacement in drawing.lua at line 313
[5.487]→[5.3162:3237](∅→∅) − local line_cache = State.line_cache[State.lines.current_drawing_index]
+ local starty = Text.starty(State, State.lines.current_drawing_index)
replacement in drawing.lua at line 322
[5.227]→[5.3238:3350](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 329
[5.627]→[5.3351:3463](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 337
[5.1032]→[5.3464:3588](∅→∅) − App.mouse_move(State.left+Drawing.pixels(p2.x, State.width), line_cache.starty+Drawing.pixels(p2.y, State.width))
+ App.mouse_move(State.left+Drawing.pixels(p2.x, State.width), starty+Drawing.pixels(p2.y, State.width))
replacement in drawing.lua at line 341
[5.1231]→[5.3589:3701](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 349
[5.1668]→[5.3702:3816](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 364
[5.2366]→[5.3817:3931](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 375
[5.2970]→[5.3932:4044](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 382
[5.3348]→[5.4045:4157](∅→∅) − local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 486
[5.690]→[5.4158:4354](∅→∅) − local _,drawing,line_cache = Drawing.current_drawing(State)
− local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
+ local drawing_index,drawing = Drawing.current_drawing(State)
+ local starty = Text.starty(State, drawing_index)
+ local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-starty, State.width)
replacement in drawing.lua at line 492
[5.936]→[5.4355:4551](∅→∅) − local _,drawing,line_cache = Drawing.current_drawing(State)
− local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
+ local drawing_index,drawing = Drawing.current_drawing(State)
+ local starty = Text.starty(State, drawing_index)
+ local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-starty, State.width)
replacement in drawing.lua at line 503
[5.1177]→[5.4552:4616](∅→∅) − local _,drawing,line_cache = Drawing.current_drawing(State)
+ local drawing_index,drawing = Drawing.current_drawing(State)
+ local starty = Text.starty(State, drawing_index)
replacement in drawing.lua at line 506
[5.7258]→[5.4617:4749](∅→∅) − local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-line_cache.starty, State.width)
+ local mx,my = Drawing.coord(App.mouse_x()-State.left, State.width), Drawing.coord(App.mouse_y()-starty, State.width)
replacement in drawing.lua at line 522
[5.2665]→[5.4750:4836](∅→∅) − local drawing_index,drawing,line_cache,i,p = Drawing.select_point_at_mouse(State)
+ local drawing_index,drawing,_,i,p = Drawing.select_point_at_mouse(State)
replacement in drawing.lua at line 533
[5.2771]→[5.4837:4933](∅→∅) − local drawing_index,drawing,line_cache,point_index,p = Drawing.select_point_at_mouse(State)
+ local drawing_index,drawing,_,point_index,p = Drawing.select_point_at_mouse(State)
replacement in drawing.lua at line 631
[5.19238]→[5.5068:5256](∅→∅) − local line_cache = State.line_cache[drawing_index]
− if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
− return drawing_index,drawing,line_cache
+ if Drawing.in_drawing(State, drawing_index, x,y, State.left,State.right) then
+ return drawing_index,drawing
replacement in drawing.lua at line 643
[5.4159]→[5.5312:5564](∅→∅) − local line_cache = State.line_cache[drawing_index]
− if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
− local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local starty = Text.starty(State, drawing_index)
+ if Drawing.in_drawing(State, drawing_index, x,y, State.left,State.right) then
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 648
[5.19928]→[5.5565:5611](∅→∅) − return drawing,line_cache,i,shape
+ return drawing,starty,i,shape
replacement in drawing.lua at line 660
[5.4208]→[5.5612:5864](∅→∅) − local line_cache = State.line_cache[drawing_index]
− if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
− local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-line_cache.starty, State.width)
+ local starty = Text.starty(State, drawing_index)
+ if Drawing.in_drawing(State, drawing_index, x,y, State.left,State.right) then
+ local mx,my = Drawing.coord(x-State.left, State.width), Drawing.coord(y-starty, State.width)
replacement in drawing.lua at line 665
[5.8465]→[5.5865:5925](∅→∅) − return drawing_index,drawing,line_cache,i,point
+ return drawing_index,drawing,starty,i,point
replacement in drawing.lua at line 677
[5.4257]→[5.5981:6121](∅→∅) − local line_cache = State.line_cache[drawing_index]
− if Drawing.in_drawing(drawing, line_cache, x,y, State.left,State.right) then
+ if Drawing.in_drawing(State, drawing_index, x,y, State.left,State.right) then
replacement in app.lua at line 134
[4.8755]→[4.8755:8792](∅→∅) − --? test_pagedown_skips_drawings()
+ --? test_click_moves_cursor()