diff options
-rw-r--r-- | indra/llui/llaccordionctrltab.cpp | 6 | ||||
-rw-r--r-- | indra/llui/llfloater.cpp | 16 | ||||
-rw-r--r-- | indra/llui/llfloater.h | 4 | ||||
-rw-r--r-- | indra/newview/llplacesinventorypanel.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llplacesinventorypanel.h | 6 | ||||
-rw-r--r-- | indra/newview/llsidepanelappearance.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llsidepanelappearance.h | 1 | ||||
-rw-r--r-- | indra/newview/llsidetray.cpp | 20 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 5 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/floater_media_browser.xml | 3 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/panel_group_land_money.xml | 12 |
11 files changed, 90 insertions, 6 deletions
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index b7da5f4a1b..32112c6c51 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -735,6 +735,12 @@ S32 LLAccordionCtrlTab::notifyParent(const LLSD& info) return 1; } + + if (!getDisplayChildren()) + { + // Don't pass scrolling event further if our contents are invisible (STORM-298). + return 1; + } } return LLUICtrl::notifyParent(info); diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index eb5d7a6b6a..d23b876543 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -231,7 +231,8 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p) mTornOff(false), mHasBeenDraggedWhileMinimized(FALSE), mPreviousMinimizedBottom(0), - mPreviousMinimizedLeft(0) + mPreviousMinimizedLeft(0), + mMinimizeSignal(NULL) // mNotificationContext(NULL) { mHandle.bind(this); @@ -493,6 +494,8 @@ LLFloater::~LLFloater() setVisible(false); // We're not visible if we're destroyed storeVisibilityControl(); storeDockStateControl(); + + delete mMinimizeSignal; } void LLFloater::storeRectControl() @@ -997,6 +1000,11 @@ void LLFloater::setMinimized(BOOL minimize) if (minimize == mMinimized) return; + if(mMinimizeSignal) + { + (*mMinimizeSignal)(this, LLSD(minimize)); + } + if (minimize) { // minimized flag should be turned on before release focus @@ -2810,6 +2818,12 @@ void LLFloater::initFromParams(const LLFloater::Params& p) } } +boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_t::slot_type& cb ) +{ + if (!mMinimizeSignal) mMinimizeSignal = new commit_signal_t(); + return mMinimizeSignal->connect(cb); +} + LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build"); bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 5ecf515cf9..d26f41b4c7 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -142,6 +142,8 @@ public: // Don't export top/left for rect, only height/width static void setupParamsForExport(Params& p, LLView* parent); + boost::signals2::connection setMinimizeCallback( const commit_signal_t::slot_type& cb ); + void initFromParams(const LLFloater::Params& p); bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL); @@ -347,6 +349,8 @@ public: // Public so external views or floaters can watch for this floater closing commit_signal_t mCloseSignal; + commit_signal_t* mMinimizeSignal; + protected: std::string mRectControl; std::string mVisibilityControl; diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp index 29e262199e..408270a1a0 100644 --- a/indra/newview/llplacesinventorypanel.cpp +++ b/indra/newview/llplacesinventorypanel.cpp @@ -205,6 +205,24 @@ BOOL LLPlacesFolderView::handleRightMouseDown(S32 x, S32 y, MASK mask) return LLFolderView::handleRightMouseDown(x, y, mask); } +BOOL LLPlacesFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg) +{ + // Don't accept anything except landmarks and folders to be dropped + // in places folder view. See STORM-296. + if (cargo_type != DAD_LANDMARK && cargo_type != DAD_CATEGORY) + { + *accept = ACCEPT_NO; + return FALSE; + } + + return LLFolderView::handleDragAndDrop(x, y, mask, drop, cargo_type, cargo_data, + accept, tooltip_msg); +} + void LLPlacesFolderView::setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle) { mMenuHandlesByInventoryType[asset_type] = menu_handle; diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h index 6641871a0b..a44776d18b 100644 --- a/indra/newview/llplacesinventorypanel.h +++ b/indra/newview/llplacesinventorypanel.h @@ -70,6 +70,12 @@ public: */ /*virtual*/ BOOL handleRightMouseDown( S32 x, S32 y, MASK mask ); + /*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, + EDragAndDropType cargo_type, + void* cargo_data, + EAcceptance* accept, + std::string& tooltip_msg); + void setupMenuHandle(LLInventoryType::EType asset_type, LLHandle<LLView> menu_handle); void setParentLandmarksPanel(LLLandmarksPanel* panel) diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index a3c6a7b6f1..1999f14828 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -183,6 +183,11 @@ void LLSidepanelAppearance::onOpen(const LLSD& key) void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility) { + updateToVisibility(new_visibility); +} + +void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility) +{ if (new_visibility.asBoolean()) { bool is_outfit_edit_visible = mOutfitEdit && mOutfitEdit->getVisible(); diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h index f28cdfa49a..2a83dfbc9d 100644 --- a/indra/newview/llsidepanelappearance.h +++ b/indra/newview/llsidepanelappearance.h @@ -63,6 +63,7 @@ public: void setWearablesLoading(bool val); void showDefaultSubpart(); void updateScrollingPanelList(); + void updateToVisibility( const LLSD& new_visibility ); private: void onFilterEdit(const std::string& search_string); diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index 426ad26f1b..b7470c03bc 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -49,6 +49,8 @@ #include "llwindow.h"//for SetCursor #include "lltransientfloatermgr.h" +#include "llsidepanelappearance.h" + //#include "llscrollcontainer.h" using namespace std; @@ -290,6 +292,13 @@ void LLSideTrayTab::dock() } } +static void on_minimize(LLSidepanelAppearance* panel, LLSD minimized) +{ + if (!panel) return; + bool visible = !minimized.asBoolean(); + panel->updateToVisibility(LLSD(visible)); +} + void LLSideTrayTab::undock(LLFloater* floater_tab) { LLSideTray* side_tray = getSideTray(); @@ -351,6 +360,17 @@ void LLSideTrayTab::undock(LLFloater* floater_tab) // Set FOLLOWS_ALL flag for the tab to follow floater dimensions upon resizing. setFollowsAll(); + // Camera view may need to be changed for appearance panel(STORM-301) on minimize of floater, + // so setting callback here. + if (getName() == "sidebar_appearance") + { + LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance*>(getPanel()); + if(panel_appearance) + { + floater_tab->setMinimizeCallback(boost::bind(&on_minimize, panel_appearance, _2)); + } + } + if (!side_tray->getCollapsed()) { side_tray->collapseSideBar(); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index cb24720e7b..b4a5777f10 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -9054,7 +9054,10 @@ LLCullResult::sg_list_t::iterator LLPipeline::endAlphaGroups() BOOL LLPipeline::hasRenderType(const U32 type) const { - return mRenderTypeEnabled[type]; + // STORM-365 : LLViewerJointAttachment::setAttachmentVisibility() is setting type to 0 to actually mean "do not render" + // We then need to test that value here and return FALSE to prevent attachment to render (in mouselook for instance) + // TODO: reintroduce RENDER_TYPE_NONE in LLRenderTypeMask and initialize its mRenderTypeEnabled[RENDER_TYPE_NONE] to FALSE explicitely + return (type == 0 ? FALSE : mRenderTypeEnabled[type]); } void LLPipeline::setRenderTypeMask(U32 type, ...) diff --git a/indra/newview/skins/default/xui/en/floater_media_browser.xml b/indra/newview/skins/default/xui/en/floater_media_browser.xml index c02d607586..1b21b97092 100644 --- a/indra/newview/skins/default/xui/en/floater_media_browser.xml +++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml @@ -33,6 +33,7 @@ height="20" layout="topleft" left="0" + min_height="20" name="nav_controls" top="400" user_resize="false" @@ -106,6 +107,7 @@ height="20" layout="topleft" left_delta="0" + min_height="20" name="time_controls" top_delta="0" user_resize="false" @@ -163,6 +165,7 @@ height="20" layout="topleft" left_delta="0" + min_height="20" name="parcel_owner_controls" top_delta="0" user_resize="false" diff --git a/indra/newview/skins/default/xui/en/panel_group_land_money.xml b/indra/newview/skins/default/xui/en/panel_group_land_money.xml index 76f7484c68..64539f2134 100644 --- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml +++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml @@ -65,19 +65,23 @@ <scroll_list.columns label="Parcel" name="name" - width="78" /> + width="47" /> <scroll_list.columns label="Region" name="location" - width="78" /> + width="47" /> <scroll_list.columns label="Type" name="type" - width="70" /> + width="47" /> <scroll_list.columns label="Area" name="area" - width="50" /> + width="47" /> + <scroll_list.columns + label="Hidden" + name="hidden" + width="47" /> </scroll_list> <text type="string" |