diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp index f689bdc625..12af22aba3 100644 --- a/indra/newview/llnetmap.cpp +++ b/indra/newview/llnetmap.cpp @@ -99,6 +99,10 @@ std::map LLNetMap::sAvatarMarksMap; // Ansariel LLNetMap::LLNetMap (const Params & p) : LLUICtrl (p), mBackgroundColor (p.bg_color()), + // Fixing borked minimap zoom level persistance + //mScale( MAP_SCALE_MID ), + //mPixelsPerMeter( MAP_SCALE_MID / REGION_WIDTH_METERS ), + // Fixing borked minimap zoom level persistance mObjectMapTPM(0.f), mObjectMapPixels(0.f), mTargetPan(0.f, 0.f), @@ -115,19 +119,23 @@ LLNetMap::LLNetMap (const Params & p) mToolTipMsg(), mPopupMenu(NULL) { + // Fixing borked minimap zoom level persistance mScale = gSavedSettings.getF32("MiniMapScale"); mPixelsPerMeter = mScale / REGION_WIDTH_METERS; mDotRadius = llmax(DOT_SCALE * mPixelsPerMeter, MIN_DOT_RADIUS); - // Ansariel: Fixing borked minimap zoom level persistance + setScale(mScale); + //mDotRadius = llmax(DOT_SCALE * mPixelsPerMeter, MIN_DOT_RADIUS); //setScale(gSavedSettings.getF32("MiniMapScale")); - // END Ansariel: Fixing borked minimap zoom level persistance + // Fixing borked minimap zoom level persistance } LLNetMap::~LLNetMap() { - // Ansariel: Fixing borked minimap zoom level persistance + // Fixing borked minimap zoom level persistance + // Since there are two netmap instances, save zoom level in setScale + // so we always store the zoom level set last throughout all instances //gSavedSettings.setF32("MiniMapScale", mScale); - // END Ansariel: Fixing borked minimap zoom level persistance + // Fixing borked minimap zoom level persistance } BOOL LLNetMap::postBuild() @@ -151,8 +159,12 @@ void LLNetMap::setScale( F32 scale ) mCurPan *= scale / mScale; mScale = scale; + // Fixing borked minimap zoom level persistance + // Save minimap scale here so we get the latest zoom level + // throughout all netmap instances gSavedSettings.setF32("MiniMapScale", mScale); - + // Fixing borked minimap zoom level persistance + if (mObjectImagep.notNull()) { F32 width = (F32)(getRect().getWidth());