I feel confident now that page-down is working.
This commit is contained in:
parent
6550a4c6d7
commit
1e63bf0e0a
5
main.lua
5
main.lua
|
@ -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()
|
||||
|
|
10
text.lua
10
text.lua
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue