Probably fix layout issues caused by floating point errors where an element is wrapped when it has space (e.g. 2 elements with a width 0.5 not fitting properly)

This commit is contained in:
2022-05-02 19:08:47 -05:00
parent 300e7c4e59
commit 31e909eb30
6 changed files with 16 additions and 14 deletions

View File

@@ -64,8 +64,8 @@ module CyberarmEngine
@scale_y = 1
end
@width = _width || @image.width.round * @scale_x
@height = _height || @image.height.round * @scale_y
@width = _width || @image.width.floor * @scale_x
@height = _height || @image.height.floor * @scale_y
update_background
else

View File

@@ -122,8 +122,8 @@ module CyberarmEngine
_width = dimensional_size(@style.width, :width)
_height = dimensional_size(@style.height, :height)
@width = _width || (@children.map { |c| c.x + c.outer_width }.max || 0).round
@height = _height || (@children.map { |c| c.y + c.outer_height }.max || 0).round
@width = _width || (@children.map { |c| c.x + c.outer_width }.max || 0).floor
@height = _height || (@children.map { |c| c.y + c.outer_height }.max || 0).floor
end
# Move child to parent after positioning

View File

@@ -98,7 +98,7 @@ module CyberarmEngine
end
def row_at(y)
((y - @text.y) / @text.textobject.height).round
((y - @text.y) / @text.textobject.height).floor
end
def column_at(x, y)

View File

@@ -45,8 +45,8 @@ module CyberarmEngine
@scale_y = 1
end
@width = _width || @image.width.round * @scale_x
@height = _height || @image.height.round * @scale_y
@width = _width || @image.width.floor * @scale_x
@height = _height || @image.height.floor * @scale_y
update_background
end

View File

@@ -43,8 +43,8 @@ module CyberarmEngine
handle_text_wrapping(_width)
@width = _width || @text.width.round
@height = _height || @text.height.round
@width = _width || @text.width.floor
@height = _height || @text.height.floor
@text.y = @style.border_thickness_top + @style.padding_top + @y
@text.z = @z + 3