Skip to content

Commit 07de1b6

Browse files
authored
Fix zoom widget fonts (#1781)
1 parent ee6e9b2 commit 07de1b6

4 files changed

Lines changed: 23 additions & 13 deletions

File tree

src/ui_parts/debug_content.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func _update_input_debug(event: InputEvent) -> void:
6161
var new_text := input_debug_label.text
6262
var event_text := event.as_text()
6363
if event is InputEventMouse:
64-
event_text += " (" + Utils.num_simple(event.position.x, 2) + ", " + Utils.num_simple(event.position.y, 2) + ")"
64+
event_text += " (%s, %s)" % [Utils.num_simple(event.position.x, 2), Utils.num_simple(event.position.y, 2)]
6565
if event_text == last_event_text:
6666
last_event_repeat_count += 1
6767
new_text = new_text.left(new_text.rfind("\n", new_text.length() - 2) + 1)

src/ui_parts/previews.gd

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,14 @@ class IconPreviewTileData extends RefCounted:
4747

4848
preview_texture = DPITexture.create_from_string(State.stable_export_markup, multiplier)
4949
dimensions_text = "%d×%d" % [preview_texture.get_width(), preview_texture.get_height()]
50-
additional_text = " (%sx)" % Utils.num_simple(multiplier, 1 if multiplier > 10 else 2)
50+
var precision := 0
51+
if multiplier < 1:
52+
precision = 3
53+
elif multiplier < 10:
54+
precision = 2
55+
elif multiplier < 100:
56+
precision = 1
57+
additional_text = " (%sx)" % Utils.num_simple(multiplier, precision)
5158
dimensions_label_width = font.get_string_size(dimensions_text, HORIZONTAL_ALIGNMENT_LEFT, -1, 14).x
5259
var additional_text_width := font.get_string_size(additional_text, HORIZONTAL_ALIGNMENT_LEFT, -1, 14).x
5360
var full_text_width := dimensions_label_width + additional_text_width

src/ui_widgets/Canvas.gd

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -308,11 +308,7 @@ func set_zoom(new_zoom: float, offset := Vector2(0.5, 0.5)) -> void:
308308

309309
# Top left corner.
310310
func set_view(new_center: Vector2) -> void:
311-
new_center = new_center.clamp(limit_top_left, limit_bottom_right)
312-
if new_center == camera_center:
313-
return
314-
315-
camera_center = new_center
311+
camera_center = new_center.clamp(limit_top_left, limit_bottom_right)
316312
var stripped_left := maxf(camera_center.x - size.x / camera_zoom / 2.0, 0.0)
317313
var stripped_top := maxf(camera_center.y - size.y / camera_zoom / 2.0, 0.0)
318314
var stripped_right := minf(camera_center.x + size.x / camera_zoom / 2.0, root_element.width)

src/ui_widgets/zoom_widget.gd

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,22 @@ func setup_limits(new_min_zoom: float, new_max_zoom: float) -> void:
3131

3232
func sync_to_value(new_zoom: float) -> void:
3333
new_zoom = clampf(new_zoom, min_zoom, max_zoom)
34-
if new_zoom < 0.1:
35-
zoom_reset_button.text = Utils.num_simple(new_zoom * 100, 2) + "%"
36-
elif new_zoom < 10.0:
37-
zoom_reset_button.text = Utils.num_simple(new_zoom * 100, 1) + "%"
38-
elif new_zoom < 100.0:
39-
zoom_reset_button.text = String.num_uint64(roundi(new_zoom * 100)) + "%"
34+
if new_zoom < 100:
35+
var precision := 0
36+
if new_zoom < 0.1:
37+
precision = 2
38+
elif new_zoom < 10:
39+
precision = 1
40+
zoom_reset_button.text = Utils.num_simple(new_zoom * 100, precision) + "%"
4041
else:
4142
zoom_reset_button.text = Utils.num_simple(new_zoom, 1) + "x"
4243

44+
if zoom_reset_button.has_theme_font_size_override("font_size"):
45+
zoom_reset_button.remove_theme_font_size_override("font_size")
46+
zoom_reset_button.reset_size()
47+
if zoom_reset_button.size.x > zoom_reset_button.custom_minimum_size.x:
48+
zoom_reset_button.add_theme_font_size_override("font_size", zoom_reset_button.get_theme_font_size("font_size") - 1)
49+
4350
var is_max_zoom := is_equal_approx(new_zoom, max_zoom)
4451
zoom_in_button.disabled = is_max_zoom
4552
zoom_in_button.mouse_default_cursor_shape = Control.CURSOR_ARROW if is_max_zoom else Control.CURSOR_POINTING_HAND

0 commit comments

Comments
 (0)