I feel confident now that page-down is working.

This commit is contained in:
Kartik K. Agaram 2022-05-21 20:52:44 -07:00
parent 6550a4c6d7
commit 1e63bf0e0a
2 changed files with 12 additions and 3 deletions

View File

@ -141,11 +141,12 @@ function love.draw()
y = y + Drawing.pixels(line.h) + 10 -- padding y = y + Drawing.pixels(line.h) + 10 -- padding
else else
line.y = y line.y = y
y = Text.draw(line, Line_width, line_index) y, Screen_bottom1.pos = Text.draw(line, Line_width, line_index)
y = y + math.floor(15*Zoom) -- text height y = y + math.floor(15*Zoom) -- text height
end end
end end
end end
--? print('screen bottom: '..tostring(Screen_bottom1.pos)..' in '..tostring(Lines[Screen_bottom1.line].data))
--? os.exit(1) --? os.exit(1)
end end
@ -216,7 +217,7 @@ function keychord_pressed(chord)
save_to_disk(Lines, Filename) save_to_disk(Lines, Filename)
elseif chord == 'pagedown' then elseif chord == 'pagedown' then
Screen_top1.line = Screen_bottom1.line Screen_top1.line = Screen_bottom1.line
Screen_top1.pos = 1 Screen_top1.pos = Screen_bottom1.pos
Cursor1.line = Screen_top1.line Cursor1.line = Screen_top1.line
Cursor1.pos = Screen_top1.pos Cursor1.pos = Screen_top1.pos
Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary() Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary()

View File

@ -5,12 +5,16 @@ local utf8 = require 'utf8'
local Debug_new_render = false local Debug_new_render = false
-- return values:
-- y coordinate drawn until in px
-- position of start of final screen line drawn
function Text.draw(line, line_width, line_index) function Text.draw(line, line_width, line_index)
love.graphics.setColor(0,0,0) love.graphics.setColor(0,0,0)
-- wrap long lines -- wrap long lines
local x = 25 local x = 25
local y = line.y local y = line.y
local pos = 1 local pos = 1
local screen_line_starting_pos = 1
if line.fragments == nil then if line.fragments == nil then
Text.compute_fragments(line, line_width) Text.compute_fragments(line, line_width)
end end
@ -24,6 +28,10 @@ function Text.draw(line, line_width, line_index)
assert(x > 25) -- no overfull lines assert(x > 25) -- no overfull lines
if line_index > Screen_top1.line or pos > Screen_top1.pos then if line_index > Screen_top1.line or pos > Screen_top1.pos then
y = y + math.floor(15*Zoom) y = y + math.floor(15*Zoom)
if y + math.floor(15*Zoom) > Screen_height then
return y, screen_line_starting_pos
end
screen_line_starting_pos = pos
if Debug_new_render then print('y', y) end if Debug_new_render then print('y', y) end
end end
x = 25 x = 25
@ -52,7 +60,7 @@ function Text.draw(line, line_width, line_index)
Text.draw_cursor(x, y) Text.draw_cursor(x, y)
end end
Debug_new_render = false Debug_new_render = false
return y return y, screen_line_starting_pos
end end
-- manual tests: -- manual tests:
-- draw with small line_width of 100 -- draw with small line_width of 100