diff options
author | Steven Bennetts <steve@lindenlab.com> | 2007-01-23 19:12:31 +0000 |
---|---|---|
committer | Steven Bennetts <steve@lindenlab.com> | 2007-01-23 19:12:31 +0000 |
commit | 7f50e28b0f3905f95299f7d5d63e0fd82e103bed (patch) | |
tree | 99c01f8184cc9a5ca90484661b30a8ac6dcd60f4 /indra/newview | |
parent | 47576ad1f77ecbe606fa1bd3addac610fad43dd7 (diff) |
merge -r 56842:57026 maintenance.
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llfasttimerview.cpp | 62 | ||||
-rw-r--r-- | indra/newview/llfasttimerview.h | 1 | ||||
-rw-r--r-- | indra/newview/llfeaturemanager.cpp | 19 | ||||
-rw-r--r-- | indra/newview/llfeaturemanager.h | 8 | ||||
-rw-r--r-- | indra/newview/llflexibleobject.cpp | 6 | ||||
-rw-r--r-- | indra/newview/llfloaterland.cpp | 8 | ||||
-rw-r--r-- | indra/newview/llfloaterland.h | 3 | ||||
-rw-r--r-- | indra/newview/llfloatertools.cpp | 15 | ||||
-rw-r--r-- | indra/newview/llfloatertools.h | 1 | ||||
-rw-r--r-- | indra/newview/llmanip.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llstartup.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llviewercontrol.cpp | 4 | ||||
-rw-r--r-- | indra/newview/llviewercontrol.h | 5 | ||||
-rw-r--r-- | indra/newview/llviewerparcelmgr.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llviewerstats.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llviewerstats.h | 6 | ||||
-rw-r--r-- | indra/newview/llviewerwindow.cpp | 15 |
17 files changed, 83 insertions, 90 deletions
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp index c8c1d0d878..57f786053a 100644 --- a/indra/newview/llfasttimerview.cpp +++ b/indra/newview/llfasttimerview.cpp @@ -52,19 +52,21 @@ static LLColor4 green9(0.6f, 1.0f, 0.6f, 1.0f); // red (5) magenta (4) static struct ft_display_info ft_display_table[] = { - { LLFastTimer::FTM_FRAME, "Frame", &LLColor4::white, 0 }, - { LLFastTimer::FTM_MESSAGES, " Messages", &LLColor4::grey1, 0 }, - { LLFastTimer::FTM_SLEEP, " Sleep", &LLColor4::grey2, 0 }, - { LLFastTimer::FTM_IDLE, " Idle", &blue0, 0 }, - { LLFastTimer::FTM_INVENTORY, " Inventory Update", &LLColor4::purple6, 1 }, - { LLFastTimer::FTM_AUTO_SELECT, " Open and Select", &LLColor4::red, 0 }, + { LLFastTimer::FTM_FRAME, "Frame", &LLColor4::white, 0 }, + { LLFastTimer::FTM_MESSAGES, " Messages", &LLColor4::grey1, 0 }, + { LLFastTimer::FTM_SLEEP, " Sleep", &LLColor4::grey2, 0 }, + { LLFastTimer::FTM_IDLE, " Idle", &blue0, 0 }, + { LLFastTimer::FTM_PUMP, " Pump", &LLColor4::magenta2, 1 }, + { LLFastTimer::FTM_CURL, " Curl", &LLColor4::magenta3, 0 }, + { LLFastTimer::FTM_INVENTORY, " Inventory Update", &LLColor4::purple6, 1 }, + { LLFastTimer::FTM_AUTO_SELECT, " Open and Select", &LLColor4::red, 0 }, { LLFastTimer::FTM_FILTER, " Filter", &LLColor4::red2, 0 }, { LLFastTimer::FTM_ARRANGE, " Arrange", &LLColor4::red3, 0 }, { LLFastTimer::FTM_REFRESH, " Refresh", &LLColor4::red4, 0 }, { LLFastTimer::FTM_SORT, " Sort", &LLColor4::red5, 0 }, - { LLFastTimer::FTM_RESET_DRAWORDER, " ResetDrawOrder", &LLColor4::pink1, 0 }, - { LLFastTimer::FTM_WORLD_UPDATE, " World Update", &LLColor4::blue1, 1 }, - { LLFastTimer::FTM_UPDATE_MOVE, " Move Objects", &LLColor4::pink2, 0 }, + { LLFastTimer::FTM_RESET_DRAWORDER, " ResetDrawOrder", &LLColor4::pink1, 0 }, + { LLFastTimer::FTM_WORLD_UPDATE, " World Update", &LLColor4::blue1, 1 }, + { LLFastTimer::FTM_UPDATE_MOVE, " Move Objects", &LLColor4::pink2, 0 }, { LLFastTimer::FTM_OCTREE_BALANCE, " Octree Balance", &LLColor4::red3, 0 }, { LLFastTimer::FTM_CULL, " Object Cull", &LLColor4::blue2, 0 }, { LLFastTimer::FTM_CULL_REBOUND, " Rebound", &LLColor4::blue3, 0 }, @@ -262,6 +264,13 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask) } } } + else if (mask & MASK_ALT) + { + if (mask & MASK_SHIFT) + mSubtractHidden = !mSubtractHidden; + else + mDisplayCalls = !mDisplayCalls; + } else if (mask & MASK_SHIFT) { if (++mDisplayMode > 3) @@ -282,8 +291,8 @@ BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask) mScrollIndex = 0; } } - // RN: for now, pass all mouse events through - return FALSE; + // SJB: Don't pass mouse clicks through the display + return TRUE; } BOOL LLFastTimerView::handleMouseUp(S32 x, S32 y, MASK mask) @@ -340,33 +349,6 @@ BOOL LLFastTimerView::handleScrollWheel(S32 x, S32 y, S32 clicks) return FALSE; } -BOOL LLFastTimerView::handleKey(KEY key, MASK mask, BOOL called_from_parent) -{ - // Otherwise space key gets eaten from the rest of the UI. JC - if (getVisible()) - { - switch (key) - { - case '=': - mDisplayCalls = !mDisplayCalls; - return TRUE; - case '-': - mSubtractHidden = !mSubtractHidden; - return TRUE; - case ' ': - // pause/unpause - LLFastTimer::sPauseHistory = !LLFastTimer::sPauseHistory; - // reset scroll to bottom when unpausing - if (!LLFastTimer::sPauseHistory) - { - mScrollIndex = 0; - } - return TRUE; - } - } - return FALSE; -} - void LLFastTimerView::draw() { LLFastTimer t(LLFastTimer::FTM_RENDER_TIMER); @@ -461,7 +443,7 @@ void LLFastTimerView::draw() LLFontGL::sMonospace->renderUTF8(tdesc, 0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP); y -= (texth + 2); - LLFontGL::sMonospace->renderUTF8("[Right-click to log selected] [= to toggle counts] [- to subtract hidden]", + LLFontGL::sMonospace->renderUTF8("[Right-Click log selected] [ALT-Click toggle counts] [ALT-SHIFT-Click sub hidden]", 0, x, y, LLColor4::white, LLFontGL::LEFT, LLFontGL::TOP); y -= (texth + 2); } @@ -547,7 +529,7 @@ void LLFastTimerView::draw() } else { - U64 ticks = disabled >= 1 ? ticks_sum[0][i] : LLFastTimer::sCountAverage[tidx]; + U64 ticks = ticks_sum[0][i]; ms = (F32)((F64)ticks * iclock_freq); calls = (S32)LLFastTimer::sCallAverage[tidx]; } diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h index ea83c38a84..eb30f60f3d 100644 --- a/indra/newview/llfasttimerview.h +++ b/indra/newview/llfasttimerview.h @@ -26,7 +26,6 @@ public: virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); virtual BOOL handleHover(S32 x, S32 y, MASK mask); virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); - virtual BOOL handleKey(KEY key, MASK mask, BOOL called_from_parent); virtual void draw(); S32 getLegendIndex(S32 y); diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index be816deebc..a31fd7d5b2 100644 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -281,12 +281,7 @@ BOOL LLFeatureManager::loadFeatureTables() return TRUE; } -S32 LLFeatureManager::getGPUClass() -{ - return mGPUClass; -} - -S32 LLFeatureManager::loadGPUClass() +void LLFeatureManager::loadGPUClass() { std::string data_path = gDirUtilp->getAppRODataDir(); @@ -294,6 +289,10 @@ S32 LLFeatureManager::loadGPUClass() data_path += GPU_TABLE_FILENAME; + // defaults + mGPUClass = 0; + mGPUString = gGLManager.getRawGLString(); + llifstream file; file.open(data_path.c_str()); @@ -301,7 +300,7 @@ S32 LLFeatureManager::loadGPUClass() if (!file) { llwarns << "Unable to open GPU table: " << data_path << "!" << llendl; - return 0; + return; } std::string renderer = gGLManager.getRawGLString(); @@ -360,14 +359,14 @@ S32 LLFeatureManager::loadGPUClass() { file.close(); llinfos << "GPU is " << label << llendl; - return (S32) strtol(cls, NULL, 10); + mGPUString = label; + mGPUClass = (S32) strtol(cls, NULL, 10); } } file.close(); //flp->dump(); llwarns << "Couldn't match GPU to a class: " << gGLManager.getRawGLString() << llendl; - return 0; } void LLFeatureManager::cleanupFeatureTables() @@ -400,7 +399,7 @@ void LLFeatureManager::initCPUFeatureMasks() void LLFeatureManager::initGraphicsFeatureMasks() { - mGPUClass = loadGPUClass(); + loadGPUClass(); if (mGPUClass >= 0 && mGPUClass < 4) { diff --git a/indra/newview/llfeaturemanager.h b/indra/newview/llfeaturemanager.h index 98f9317b01..fe37cd7638 100644 --- a/indra/newview/llfeaturemanager.h +++ b/indra/newview/llfeaturemanager.h @@ -65,9 +65,10 @@ public: void maskCurrentList(const char *name); // Mask the current feature list with the named list BOOL loadFeatureTables(); - S32 getGPUClass(); - S32 loadGPUClass(); + S32 getGPUClass() { return mGPUClass; } + std::string& getGPUString() { return mGPUString; } + void cleanupFeatureTables(); S32 getVersion() const { return mTableVersion; } @@ -83,7 +84,9 @@ public: BOOL initPCIFeatureMasks(); void applyRecommendedFeatures(); + protected: + void loadGPUClass(); void initBaseMask(); std::map<LLString, LLFeatureList *> mMaskList; @@ -91,6 +94,7 @@ protected: S32 mTableVersion; BOOL mSafe; // Reinitialize everything to the "safe" mask S32 mGPUClass; + std::string mGPUString; }; extern LLFeatureManager *gFeatureManagerp; diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index 4f821a7978..5e105ac7e2 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -185,9 +185,13 @@ void LLVolumeImplFlexible::setAttributesOfAllSections() end_rot = F_PI * params.getTwist(); } + if (!mVO->mDrawable) + { + return; + } + S32 num_sections = 1 << mSimulateRes; - LLVector3 scale = mVO->mDrawable->getScale(); mSection[0].mPosition = getAnchorPosition(); diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 6897e49dd9..3b4c7c2f59 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -95,6 +95,7 @@ LLFloaterLand* LLFloaterLand::sInstance = NULL; LLParcelSelectionObserver* LLFloaterLand::sObserver = NULL; S32 LLFloaterLand::sLastTab = 0; BOOL LLFloaterLand::sRequestReplyOnUpdate = TRUE; +LLViewHandle LLPanelLandGeneral::sBuyPassDialogHandle; // Local classes class LLParcelSelectionObserver : public LLParcelObserver @@ -943,7 +944,7 @@ void LLPanelLandGeneral::onClickBuyPass(void* deselect_when_done) args["[PARCEL_NAME]"] = parcel_name; args["[TIME]"] = time; - gViewerWindow->alertXml("LandBuyPass", args, cbBuyPass, deselect_when_done); + sBuyPassDialogHandle = gViewerWindow->alertXml("LandBuyPass", args, cbBuyPass, deselect_when_done)->getHandle(); } // static @@ -980,6 +981,11 @@ void LLPanelLandGeneral::cbBuyPass(S32 option, void* data) } } +//static +BOOL LLPanelLandGeneral::buyPassDialogVisible() +{ + return LLFloater::getFloaterByHandle(sBuyPassDialogHandle) != NULL; +} // static void LLPanelLandGeneral::onCommitAny(LLUICtrl *ctrl, void *userdata) diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h index 72f1e8ca8d..a28fea261f 100644 --- a/indra/newview/llfloaterland.h +++ b/indra/newview/llfloaterland.h @@ -130,6 +130,7 @@ public: static void onSalePriceChange(LLUICtrl *ctrl, void * userdata); static void cbBuyPass(S32 option, void*); + static BOOL buyPassDialogVisible(); static void onClickSellLand(void* data); static void onClickStopSellLand(void* data); @@ -196,6 +197,8 @@ protected: LLButton* mBtnBuyPass; LLButton* mBtnStartAuction; + + static LLViewHandle sBuyPassDialogHandle; }; class LLPanelLandObjects diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 11665f484a..c9a28ab361 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -364,8 +364,7 @@ LLFloaterTools::LLFloaterTools() mPanelLandInfo(NULL), mTabLand(NULL), - mDirty(TRUE), - mLastTool(gToolNull) + mDirty(TRUE) { mAutoFocus = FALSE; LLCallbackMap::map_t factory_map; @@ -930,21 +929,13 @@ void LLFloaterTools::onClickGridOptions(void* data) //floaterp->addDependentFloater(LLFloaterBuildOptions::getInstance(), FALSE); } -void LLFloaterTools::saveLastTool() -{ - mLastTool = gToolMgr->getCurrentTool( MASK_NONE ); -} - void LLFloaterTools::setEditTool(void* tool_pointer) { select_tool(tool_pointer); - if(gFloaterTools && tool_pointer != gToolNull) - { - gFloaterTools->saveLastTool(); - } } void LLFloaterTools::onFocusReceived() { - select_tool(mLastTool); + gCurrentToolset = gBasicToolset; + gCurrentToolset->selectTool(gCurrentToolset->getSelectedTool()); }
\ No newline at end of file diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h index c1bb050c2c..e13e15ba01 100644 --- a/indra/newview/llfloatertools.h +++ b/indra/newview/llfloatertools.h @@ -156,7 +156,6 @@ public: LLPanelLandInfo *mPanelLandInfo; LLTabContainer* mTabLand; - LLTool* mLastTool; private: BOOL mDirty; diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp index 57d34f672b..74c7ae6c18 100644 --- a/indra/newview/llmanip.cpp +++ b/indra/newview/llmanip.cpp @@ -88,9 +88,7 @@ void LLManip::getManipNormal(LLViewerObject* object, EManipPart manip, LLVector3 LLVector3 arrow_axis; getManipAxis(object, manip, arrow_axis); - LLVector3 origin_dir = grid_origin - gCamera->getOrigin(); - origin_dir.normVec(); - LLVector3 cross = arrow_axis % origin_dir; + LLVector3 cross = arrow_axis % gCamera->getAtAxis(); normal = cross % arrow_axis; normal.normVec(); } diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 2119bf2d70..eda759cc2c 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -666,7 +666,7 @@ BOOL idle_startup() gSavedSettings.loadFromFile(gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT,"overrides.xml")); // handle the per account settings setup - strcpy(gPerAccountSettingsFileName, gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, DEFAULT_SETTINGS_FILE).c_str()); + gPerAccountSettingsFileName = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, DEFAULT_SETTINGS_FILE); // per account settings. Set defaults here if not found. If we get a bunch of these, eventually move to a function. gSavedPerAccountSettings.loadFromFile(gPerAccountSettingsFileName); diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index c0de0c872a..ea26802152 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -38,8 +38,8 @@ LLControlGroup gCrashSettings; // saved at end of session LLString gLastRunVersion; LLString gCurrentVersion; -char gSettingsFileName[LL_MAX_PATH]; -char gPerAccountSettingsFileName[LL_MAX_PATH] = ""; +LLString gSettingsFileName; +LLString gPerAccountSettingsFileName; LLFloaterSettingsDebug::LLFloaterSettingsDebug() : LLFloater("Configuration Editor") { diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h index a6692df7fb..e86f961b3a 100644 --- a/indra/newview/llviewercontrol.h +++ b/indra/newview/llviewercontrol.h @@ -53,8 +53,7 @@ extern LLControlGroup gCrashSettings; extern LLString gLastRunVersion; extern LLString gCurrentVersion; -extern char gSettingsFileName[LL_MAX_PATH]; -extern char gPerAccountSettingsFileName[LL_MAX_PATH]; -extern const char *DEFAULT_SETTINGS_FILE; +extern LLString gSettingsFileName; +extern LLString gPerAccountSettingsFileName; #endif // LL_LLVIEWERCONTROL_H diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index e3d462bb3b..a3cfe734ff 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -2484,7 +2484,7 @@ void LLViewerParcelMgr::buyPass() //Tells whether we are allowed to buy a pass or not BOOL LLViewerParcelMgr::isCollisionBanned() { - if ((mCollisionBanned == BA_ALLOWED) || (mCollisionBanned == BA_NOT_ON_LIST)) + if ((mCollisionBanned == BA_ALLOWED) || (mCollisionBanned == BA_NOT_ON_LIST) || (mCollisionBanned == BA_NOT_IN_GROUP)) return FALSE; else return TRUE; diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp index bb490959c7..baf241697b 100644 --- a/indra/newview/llviewerstats.cpp +++ b/indra/newview/llviewerstats.cpp @@ -38,8 +38,8 @@ public: const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = { - // ST_MOUSELOOK_SECONDS - StatAttributes("Seconds in Mouselook", FALSE, TRUE), + // ST_VERSION + StatAttributes("Version", TRUE, FALSE), // ST_AVATAR_EDIT_SECONDS StatAttributes("Seconds in Edit Appearence", FALSE, TRUE), // ST_TOOLBOX_SECONDS @@ -58,10 +58,10 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = StatAttributes("Object rez count", FALSE, FALSE), // ST_FPS_10_SECONDS StatAttributes("Seconds below 10 FPS", FALSE, TRUE), - // ST_FPS_5_SECONDS - StatAttributes("Seconds below 5 FPS", FALSE, TRUE), // ST_FPS_2_SECONDS StatAttributes("Seconds below 2 FPS", FALSE, TRUE), + // ST_MOUSELOOK_SECONDS + StatAttributes("Seconds in Mouselook", FALSE, TRUE), // ST_FLY_COUNT StatAttributes("Fly count", FALSE, FALSE), // ST_TELEPORT_COUNT @@ -229,10 +229,6 @@ void LLViewerStats::updateFrameStats(const F64 time_diff) { incStat(LLViewerStats::ST_FPS_2_SECONDS, time_diff); } - if (time_diff >= 0.2) - { - incStat(LLViewerStats::ST_FPS_5_SECONDS, time_diff); - } if (time_diff >= 0.125) { incStat(LLViewerStats::ST_FPS_8_SECONDS, time_diff); diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h index b58012d01c..055b21d116 100644 --- a/indra/newview/llviewerstats.h +++ b/indra/newview/llviewerstats.h @@ -79,7 +79,7 @@ public: // in statTypeToText in llviewerstats.cpp enum EStatType { - ST_MOUSELOOK_SECONDS = 0, + ST_VERSION = 0, ST_AVATAR_EDIT_SECONDS = 1, ST_TOOLBOX_SECONDS = 2, ST_CHAT_COUNT = 3, @@ -89,8 +89,8 @@ public: ST_CREATE_COUNT = 7, ST_REZ_COUNT = 8, ST_FPS_10_SECONDS = 9, - ST_FPS_5_SECONDS = 10, - ST_FPS_2_SECONDS = 11, + ST_FPS_2_SECONDS = 10, + ST_MOUSELOOK_SECONDS = 11, ST_FLY_COUNT = 12, ST_TELEPORT_COUNT = 13, ST_OBJECT_DELETE_COUNT = 14, diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index dc00fe7585..77c6794dfe 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -349,6 +349,12 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask llinfos << "ViewerWindow left mouse down at " << x << "," << y << llendl; } + if (gMenuBarView) + { + // stop ALT-key access to menu + gMenuBarView->resetMenuTrigger(); + } + mLeftMouseDown = TRUE; // Make sure we get a coresponding mouseup event, even if the mouse leaves the window @@ -617,6 +623,12 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK llinfos << "ViewerWindow right mouse down at " << x << "," << y << llendl; } + if (gMenuBarView) + { + // stop ALT-key access to menu + gMenuBarView->resetMenuTrigger(); + } + mRightMouseDown = TRUE; // Make sure we get a coresponding mouseup event, even if the mouse leaves the window @@ -2514,7 +2526,7 @@ BOOL LLViewerWindow::handlePerFrameHover() } } - if (tool != gToolNull && tool != gToolInspect && tool != gToolCamera && tool != gToolDragAndDrop && !gSavedSettings.getBOOL("FreezeTime")) + if (tool != gToolNull && tool != gToolInspect && tool != gToolDragAndDrop && !gSavedSettings.getBOOL("FreezeTime")) { LLMouseHandler *captor = gFocusMgr.getMouseCapture(); // With the null, inspect, or drag and drop tool, don't muck @@ -2679,6 +2691,7 @@ BOOL LLViewerWindow::handlePerFrameHover() && !gMenuHolder->hasVisibleMenu() && !LLFloaterLand::floaterVisible() && !LLFloaterBuyLand::isOpen() + && !LLPanelLandGeneral::buyPassDialogVisible() && (!gFloaterTools || !gFloaterTools->getVisible())) { gParcelMgr->deselectLand(); |