diff options
-rw-r--r-- | indra/llui/llxyvector.cpp | 17 | ||||
-rw-r--r-- | indra/newview/llfloatereditextdaycycle.h | 3 | ||||
-rw-r--r-- | indra/newview/llpanelenvironment.cpp | 7 | ||||
-rw-r--r-- | indra/newview/llpanelenvironment.h | 2 |
4 files changed, 25 insertions, 4 deletions
diff --git a/indra/llui/llxyvector.cpp b/indra/llui/llxyvector.cpp index 48f38b8a92..9d5823e368 100644 --- a/indra/llui/llxyvector.cpp +++ b/indra/llui/llxyvector.cpp @@ -289,7 +289,14 @@ BOOL LLXYVector::handleMouseUp(S32 x, S32 y, MASK mask) make_ui_sound("UISndClickRelease"); } - return TRUE; + if (mTouchArea->getRect().pointInRect(x, y)) + { + return TRUE; + } + else + { + return LLUICtrl::handleMouseUp(x, y, mask); + } } BOOL LLXYVector::handleMouseDown(S32 x, S32 y, MASK mask) @@ -299,8 +306,12 @@ BOOL LLXYVector::handleMouseDown(S32 x, S32 y, MASK mask) { gFocusMgr.setMouseCapture(this); make_ui_sound("UISndClick"); - } - return TRUE; + return TRUE; + } + else + { + return LLUICtrl::handleMouseDown(x, y, mask); + } } diff --git a/indra/newview/llfloatereditextdaycycle.h b/indra/newview/llfloatereditextdaycycle.h index 0f2c572ccf..fd5fb67837 100644 --- a/indra/newview/llfloatereditextdaycycle.h +++ b/indra/newview/llfloatereditextdaycycle.h @@ -89,6 +89,9 @@ public: void setEditDayCycle(const LLSettingsDay::ptr_t &pday); void setEditDefaultDayCycle(); + LLUUID getEditingAssetId() { return mEditDay ? mEditDay->getAssetId() : LLUUID::null; } + LLUUID getEditingInventoryId() { return mInventoryId; } + BOOL handleKeyUp(KEY key, MASK mask, BOOL called_from_parent) override; diff --git a/indra/newview/llpanelenvironment.cpp b/indra/newview/llpanelenvironment.cpp index 1c12677355..ee66c5c15b 100644 --- a/indra/newview/llpanelenvironment.cpp +++ b/indra/newview/llpanelenvironment.cpp @@ -116,6 +116,7 @@ const std::string alt_labels[] = { LLPanelEnvironmentInfo::LLPanelEnvironmentInfo(): mCurrentEnvironment(), mDirtyFlag(0), + mEditorLastParcelId(INVALID_PARCEL_ID), mCrossRegion(false), mNoSelection(false), mNoEnvironment(false), @@ -325,11 +326,15 @@ void LLPanelEnvironmentInfo::updateEditFloater(const LLEnvironment::EnvironmentI else dayeditor->closeFloater(); } - else + else if (dayeditor->getEditingAssetId() != nextenv->mDayCycle->getAssetId() + || mEditorLastParcelId != nextenv->mParcelId + || mEditorLastRegionId != nextenv->mRegionId) { // Ignore dirty // If parcel selection changed whatever we do except saving to inventory with // old settings will be invalid. + mEditorLastParcelId = nextenv->mParcelId; + mEditorLastRegionId = nextenv->mRegionId; dayeditor->setEditDayCycle(nextenv->mDayCycle); } } diff --git a/indra/newview/llpanelenvironment.h b/indra/newview/llpanelenvironment.h index 01b9b9c562..3ed631db41 100644 --- a/indra/newview/llpanelenvironment.h +++ b/indra/newview/llpanelenvironment.h @@ -171,6 +171,8 @@ private: LLHandle<LLFloater> mSettingsFloater; LLHandle<LLFloater> mEditFloater; S32 mDirtyFlag; + S32 mEditorLastParcelId; + LLUUID mEditorLastRegionId; bool mCrossRegion; bool mNoSelection; bool mNoEnvironment; |