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
else
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
end
end
end
--? print('screen bottom: '..tostring(Screen_bottom1.pos)..' in '..tostring(Lines[Screen_bottom1.line].data))
--? os.exit(1)
end
@ -216,7 +217,7 @@ function keychord_pressed(chord)
save_to_disk(Lines, Filename)
elseif chord == 'pagedown' then
Screen_top1.line = Screen_bottom1.line
Screen_top1.pos = 1
Screen_top1.pos = Screen_bottom1.pos
Cursor1.line = Screen_top1.line
Cursor1.pos = Screen_top1.pos
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
-- return values:
-- y coordinate drawn until in px
-- position of start of final screen line drawn
function Text.draw(line, line_width, line_index)
love.graphics.setColor(0,0,0)
-- wrap long lines
local x = 25
local y = line.y
local pos = 1
local screen_line_starting_pos = 1
if line.fragments == nil then
Text.compute_fragments(line, line_width)
end
@ -24,6 +28,10 @@ function Text.draw(line, line_width, line_index)
assert(x > 25) -- no overfull lines
if line_index > Screen_top1.line or pos > Screen_top1.pos then
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
end
x = 25
@ -52,7 +60,7 @@ function Text.draw(line, line_width, line_index)
Text.draw_cursor(x, y)
end
Debug_new_render = false
return y
return y, screen_line_starting_pos
end
-- manual tests:
-- draw with small line_width of 100