diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-12-23 16:57:04 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-12-23 16:57:04 -0800 |
commit | e2e3aea2b1b9504bf849d1ab3ca9eb16544b651d (patch) | |
tree | 943a0bcb49c2f3fab753b3528e21c0e83403cf9e | |
parent | df0aec10d03cd0146add06a3ed51aed4e4273e45 (diff) | |
download | view.love-e2e3aea2b1b9504bf849d1ab3ca9eb16544b651d.tar.gz |
require editor margins to be ints
Not directly relevant here, but forks of this project that permit zooming can run into weird glitches if margins are not a whole number of pixels. I'd always assumed a type system that divided ints into floats was strictly superior, but now I have experienced a situation where requiring ints isn't just a compromise for the underlying CPU implementation. Particularly since Lua's print() silently hides really tiny fractions.
-rw-r--r-- | Manual_tests.md | 3 | ||||
-rw-r--r-- | edit.lua | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/Manual_tests.md b/Manual_tests.md index 358ea8b..cde027f 100644 --- a/Manual_tests.md +++ b/Manual_tests.md @@ -46,6 +46,9 @@ Lua is dynamically typed. Tests can't patch over lack of type-checking. * Like any high-level language, it's easy to accidentally alias two non-scalar variables. I wish there was a way to require copy when assigning. +* I wish I could require pixel coordinates to integers. The editor defensively + converts input margins to integers. + * My test harness automatically runs `test_*` methods -- but only at the top-level. I wish there was a way to raise warnings if someone defines such a function inside a dict somewhere. diff --git a/edit.lua b/edit.lua index 0a30c77..4945529 100644 --- a/edit.lua +++ b/edit.lua @@ -90,8 +90,8 @@ function edit.initialize_state(top, left, right, font_height, line_height) -- c em = App.newText(love.graphics.getFont(), 'm'), -- widest possible character width top = top, - left = left, - right = right, + left = math.floor(left), + right = math.floor(right), width = right-left, filename = love.filesystem.getUserDirectory()..'/lines.txt', -- '/' should work even on Windows |