From 9be49a10699417aa5902144d99ff70e5e1fc6af8 Mon Sep 17 00:00:00 2001 From: Leon Leno Date: Fri, 5 Nov 2021 16:32:35 -0500 Subject: Fix: Property editor icon jittering in some cases In the tools tab, the tool icon would be offset when it intersected the bottom of the editor. With some screen resolutions, the icons on the left side of the editor would also move when intersecting the bottom of the editor. This happened because of the truncation in the implicit conversion from float to int. Instead, use explicit conversion functions. Differential Revision: https://developer.blender.org/D11097 --- source/blender/editors/interface/interface_icons.c | 3 ++- source/blender/editors/interface/interface_widgets.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c index 5784af90834..c1dd4fcb4e4 100644 --- a/source/blender/editors/interface/interface_icons.c +++ b/source/blender/editors/interface/interface_icons.c @@ -1503,7 +1503,8 @@ static void icon_draw_rect(float x, int draw_w = w; int draw_h = h; int draw_x = x; - int draw_y = y; + /* We need to round y, to avoid the icon jittering in some cases. */ + int draw_y = round_fl_to_int(y); /* sanity check */ if (w <= 0 || h <= 0 || w > 2000 || h > 2000) { diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 4b11ed61657..7d1b7b80ccd 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -1407,8 +1407,8 @@ static void widget_draw_icon( /* force positions to integers, for zoom levels near 1. draws icons crisp. */ if (aspect > 0.95f && aspect < 1.05f) { - xs = (int)(xs + 0.1f); - ys = (int)(ys + 0.1f); + xs = roundf(xs); + ys = roundf(ys); } /* Get theme color. */ -- cgit v1.2.3