From f047beabc3019517d8305d9fe08c3b36e4ebb6d0 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 2 Nov 2017 13:50:15 +0100 Subject: [PATCH] FIRE-21785: Taper spinner ignores build limits for some types if editor has focus and up/down button is pressed --- indra/newview/llpanelobject.cpp | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 8f4269b4ac..7518599949 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -1172,19 +1172,27 @@ void LLPanelObject::getState( ) default: if (editable) { - F32 tmp_scale_x = scale_x; - F32 tmp_scale_y = scale_y; - if ( selected_item == MI_BOX || selected_item == MI_CYLINDER || selected_item == MI_PRISM) + // Make sure to use the correct values for the LL default types. These + // should be handled by the explicit cases and the ones in this if-condition. + // Everything else are the special FS types and profiles + if (selected_item == MI_BOX || selected_item == MI_CYLINDER || selected_item == MI_PRISM) { - tmp_scale_x = 1.f - tmp_scale_x; - tmp_scale_y = 1.f - tmp_scale_y; + mSpinScaleX->set( 1.f - scale_x ); + mSpinScaleY->set( 1.f - scale_y ); + mSpinScaleX->setMinValue(-1.f); + mSpinScaleX->setMaxValue(1.f); + mSpinScaleY->setMinValue(-1.f); + mSpinScaleY->setMaxValue(1.f); + } + else + { + mSpinScaleX->set( scale_x ); + mSpinScaleY->set( scale_x ); + mSpinScaleX->setMinValue(-4000.f); + mSpinScaleX->setMaxValue(4000.f); + mSpinScaleY->setMinValue(-4000.f); + mSpinScaleY->setMaxValue(4000.f); } - mSpinScaleX->set( tmp_scale_x ); - mSpinScaleY->set( tmp_scale_y ); - mSpinScaleX->setMinValue(-4000.f); - mSpinScaleX->setMaxValue(4000.f); - mSpinScaleY->setMinValue(-4000.f); - mSpinScaleY->setMaxValue(4000.f); // Torus' Hole Size is Box/Cyl/Prism's Taper calcp->setVar(LLCalc::X_TAPER, 1.f - scale_x);