Revert "fix gizmo bar wobbling (#6230)"

This reverts commit 9ff0e9335f.
This commit is contained in:
SoftFever 2024-08-04 19:25:41 +08:00
parent 8ed2911db8
commit 61952610df

View file

@ -7400,21 +7400,37 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale()
return; return;
} }
float scale = wxGetApp().toolbar_icon_scale();
Size cnv_size = get_canvas_size(); Size cnv_size = get_canvas_size();
// Orca: Toolbar scale is a constant value which depends on display resolution and OS. //BBS: GUI refactor: GLToolbar
// Icon size is the only variable we change to scale the toolbars. int size_i = int(GLToolbar::Default_Icons_Size * scale);
const float sc = get_scale(); // force even size
if (size_i % 2 != 0)
size_i -= 1;
float size = size_i;
// Set current size for all top toolbars. It will be used for next calculations
#if ENABLE_RETINA_GL
const float sc = m_retina_helper->get_scale_factor() * scale;
//BBS: GUI refactor: GLToolbar
m_main_toolbar.set_scale(sc); m_main_toolbar.set_scale(sc);
m_assemble_view_toolbar.set_scale(sc); m_assemble_view_toolbar.set_scale(sc);
m_separator_toolbar.set_scale(sc); m_separator_toolbar.set_scale(sc);
collapse_toolbar.set_scale(sc); collapse_toolbar.set_scale(sc / 2.0);
size *= m_retina_helper->get_scale_factor();
auto* m_notification = wxGetApp().plater()->get_notification_manager(); auto* m_notification = wxGetApp().plater()->get_notification_manager();
m_notification->set_scale(sc); m_notification->set_scale(sc);
m_gizmos.set_overlay_scale(sc); m_gizmos.set_overlay_scale(sc);
#else
float size = m_main_toolbar.get_icons_size(); //BBS: GUI refactor: GLToolbar
m_main_toolbar.set_icons_size(size);
m_assemble_view_toolbar.set_icons_size(size);
m_separator_toolbar.set_icons_size(size);
collapse_toolbar.set_icons_size(size / 2.0);
m_gizmos.set_overlay_icon_size(size);
#endif // ENABLE_RETINA_GL
//BBS: GUI refactor: GLToolbar //BBS: GUI refactor: GLToolbar
#if BBS_TOOLBAR_ON_TOP #if BBS_TOOLBAR_ON_TOP
@ -7451,21 +7467,11 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale()
// set minimum scale as a auto scale for the toolbars // set minimum scale as a auto scale for the toolbars
float new_scale = std::min(new_h_scale, new_v_scale); float new_scale = std::min(new_h_scale, new_v_scale);
new_scale = std::min(new_scale, 1.f); #if ENABLE_RETINA_GL
new_scale /= m_retina_helper->get_scale_factor();
//BBS: GUI refactor: GLToolbar #endif
int size_i = int(GLToolbar::Default_Icons_Size * new_scale); if (fabs(new_scale - scale) > 0.01) // scale is changed by 1% and more
// Orca: force even size wxGetApp().set_auto_toolbar_icon_scale(new_scale);
if (size_i % 2 != 0)
size_i -= 1;
size = size_i;
// Orca: set toolbar icon size regardless of platform
m_main_toolbar.set_icons_size(size);
m_assemble_view_toolbar.set_icons_size(size);
m_separator_toolbar.set_icons_size(size);
collapse_toolbar.set_icons_size(size / 2.0);
m_gizmos.set_overlay_icon_size(size);
} }
void GLCanvas3D::_render_overlays() void GLCanvas3D::_render_overlays()