diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index db16670f79..82a3c5cf47 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -543,9 +543,17 @@ void LLTextBase::drawText() line_end = next_start; } + // A patch for EXT-1944 "Implement ellipses in message well" + // introduced a regression where text in SansSerif ending in the + // letter "r" is clipped. This may be due to an off-by-one in + // font width information out of FreeType with our fractional font + // sizes. For now, just make an extra pixel of space to resolve + // EXT-2971 "Letter R doesn't show when it's the last letter in a + // text block". See James/Richard for details. + const S32 FIX_CLIPPING_HACK = 1; LLRect text_rect(line.mRect.mLeft + mTextRect.mLeft - scrolled_view_rect.mLeft, line.mRect.mTop - scrolled_view_rect.mBottom + mTextRect.mBottom, - llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft, + llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft + FIX_CLIPPING_HACK, line.mRect.mBottom - scrolled_view_rect.mBottom + mTextRect.mBottom); // draw a single line of text @@ -2397,12 +2405,20 @@ void LLNormalTextSegment::setToolTip(const std::string& tooltip) bool LLNormalTextSegment::getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const { - LLWString text = mEditor.getWText(); - height = mFontHeight; - width = mStyle->getFont()->getWidth(text.c_str(), mStart + first_char, num_chars); - // if last character is a newline, then return true, forcing line break - llwchar last_char = text[mStart + first_char + num_chars - 1]; + bool force_newline = false; + if (num_chars > 0) + { + LLWString text = mEditor.getWText(); + width = mStyle->getFont()->getWidth(text.c_str(), mStart + first_char, num_chars); + // if last character is a newline, then return true, forcing line break + llwchar last_char = text[mStart + first_char + num_chars - 1]; + force_newline = (last_char == '\n'); + } + else + { + width = 0; + } LLUIImagePtr image = mStyle->getImage(); if( image.notNull()) @@ -2411,7 +2427,7 @@ bool LLNormalTextSegment::getDimensions(S32 first_char, S32 num_chars, S32& widt height = llmax(height, image->getHeight()); } - return num_chars >= 1 && last_char == '\n'; + return force_newline; } S32 LLNormalTextSegment::getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index 23e4131e6d..6f8455774d 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -2533,6 +2533,7 @@ void LLView::setupParams(LLView::Params& p, LLView* parent) else { p.rect.left = p.rect.left + parent_rect.getWidth()/2 - p.rect.width/2; + p.rect.right.setProvided(false); // recalculate the right } } else @@ -2553,6 +2554,7 @@ void LLView::setupParams(LLView::Params& p, LLView* parent) else { p.rect.bottom = p.rect.bottom + parent_rect.getHeight()/2 - p.rect.height/2; + p.rect.top.setProvided(false); // recalculate the top } } else diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6252bd002e..b301d784f9 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3706,7 +3706,18 @@ Type F32 Value - 0.15 + 0.5 + + InspectorShowTime + + Comment + Stay timing for inspectors + Persist + 1 + Type + F32 + Value + 3.0 InstallLanguage @@ -7967,7 +7978,7 @@ ShowPGSearchAll Comment - Display results of search All that are flagged as PG + Display results of search All that are flagged as general Persist 1 HideFromEditor @@ -7980,7 +7991,7 @@ ShowMatureSearchAll Comment - Display results of search All that are flagged as mature + Display results of search All that are flagged as moderate Persist 1 HideFromEditor @@ -8006,7 +8017,7 @@ ShowPGGroups Comment - Display results of find groups that are flagged as PG + Display results of find groups that are flagged as general Persist 1 HideFromEditor @@ -8019,7 +8030,7 @@ ShowMatureGroups Comment - Display results of find groups that are flagged as mature + Display results of find groups that are flagged as moderate Persist 1 HideFromEditor @@ -8045,7 +8056,7 @@ ShowPGClassifieds Comment - Display results of find classifieds that are flagged as PG + Display results of find classifieds that are flagged as general Persist 1 HideFromEditor @@ -8058,7 +8069,7 @@ ShowMatureClassifieds Comment - Display results of find classifieds that are flagged as mature + Display results of find classifieds that are flagged as moderate Persist 1 HideFromEditor @@ -8084,7 +8095,7 @@ ShowPGEvents Comment - Display results of find events that are flagged as PG + Display results of find events that are flagged as general Persist 1 HideFromEditor @@ -8097,7 +8108,7 @@ ShowMatureEvents Comment - Display results of find events that are flagged as mature + Display results of find events that are flagged as moderate Persist 1 HideFromEditor @@ -8123,7 +8134,7 @@ ShowPGLand Comment - Display results of find land sales that are flagged as PG + Display results of find land sales that are flagged as general Persist 1 HideFromEditor @@ -8136,7 +8147,7 @@ ShowMatureLand Comment - Display results of find land sales that are flagged as mature + Display results of find land sales that are flagged as moderate Persist 1 HideFromEditor @@ -8162,7 +8173,7 @@ ShowPGSims Comment - Display results of find places or find popular that are in PG sims + Display results of find places or find popular that are in general sims Persist 1 HideFromEditor @@ -8175,7 +8186,7 @@ ShowMatureSims Comment - Display results of find places or find popular that are in mature sims + Display results of find places or find popular that are in moderate sims Persist 1 HideFromEditor diff --git a/indra/newview/installers/darwin/firstlook-dmg/_DS_Store b/indra/newview/installers/darwin/firstlook-dmg/_DS_Store index 408a4d4992..9d9fd897e7 100644 Binary files a/indra/newview/installers/darwin/firstlook-dmg/_DS_Store and b/indra/newview/installers/darwin/firstlook-dmg/_DS_Store differ diff --git a/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store b/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store index b901e46b65..9d9fd897e7 100644 Binary files a/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store and b/indra/newview/installers/darwin/publicnightly-dmg/_DS_Store differ diff --git a/indra/newview/installers/darwin/release-dmg/_DS_Store b/indra/newview/installers/darwin/release-dmg/_DS_Store index 2c179b11a4..9d9fd897e7 100644 Binary files a/indra/newview/installers/darwin/release-dmg/_DS_Store and b/indra/newview/installers/darwin/release-dmg/_DS_Store differ diff --git a/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store b/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store index 309c8adaaa..9d9fd897e7 100644 Binary files a/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store and b/indra/newview/installers/darwin/releasecandidate-dmg/_DS_Store differ diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp index 59985a61ff..3a8c3ab4d2 100644 --- a/indra/newview/llfloaterbuyland.cpp +++ b/indra/newview/llfloaterbuyland.cpp @@ -494,10 +494,14 @@ void LLFloaterBuyLandUI::updateCovenantInfo() LLViewerRegion* region = LLViewerParcelMgr::getInstance()->getSelectionRegion(); if(!region) return; + U8 sim_access = region->getSimAccess(); + std::string rating = LLViewerRegion::accessToString(sim_access); + LLTextBox* region_name = getChild("region_name_text"); if (region_name) { - region_name->setText(region->getName()); + std::string region_name_txt = region->getName() + " ("+rating +")"; + region_name->setText(region_name_txt); } LLTextBox* region_type = getChild("region_type_text"); diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 8bea8850b6..4e77b42187 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -1803,15 +1803,6 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, return handled; } -BOOL LLFolderView::handleScrollWheel(S32 x, S32 y, S32 clicks) -{ - if (mScrollContainer) - { - return mScrollContainer->handleScrollWheel(x, y, clicks); - } - return FALSE; -} - void LLFolderView::deleteAllChildren() { if(mRenamer == gFocusMgr.getTopCtrl()) diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h index 8e9dd923a0..4adf6c2fbf 100644 --- a/indra/newview/llfolderview.h +++ b/indra/newview/llfolderview.h @@ -227,7 +227,6 @@ public: EAcceptance* accept, std::string& tooltip_msg); /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE); - virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); virtual void draw(); virtual void deleteAllChildren(); diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index 18ff53c127..4f487ddf04 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -57,6 +57,7 @@ #include "llvoavatarself.h" #include "llviewerstats.h" #include "llnearbychatbar.h" +#include "llappearancemgr.h" // Longest time, in seconds, to wait for all animations to stop playing const F32 MAX_WAIT_ANIM_SECS = 30.f; @@ -303,6 +304,8 @@ void LLGestureManager::deactivateGesture(const LLUUID& item_id) gAgent.sendReliableMessage(); + LLAppearanceManager::instance().removeCOFItemLinks(base_item_id, false); + notifyObservers(); } diff --git a/indra/newview/llinspect.cpp b/indra/newview/llinspect.cpp index aa299014ee..c7b8db9635 100644 --- a/indra/newview/llinspect.cpp +++ b/indra/newview/llinspect.cpp @@ -50,16 +50,16 @@ LLInspect::~LLInspect() void LLInspect::draw() { static LLCachedControl FADE_TIME(*LLUI::sSettingGroups["config"], "InspectorFadeTime", 1.f); + static LLCachedControl STAY_TIME(*LLUI::sSettingGroups["config"], "InspectorShowTime", 1.f); if (mOpenTimer.getStarted()) { - F32 alpha = clamp_rescale(mOpenTimer.getElapsedTimeF32(), 0.f, FADE_TIME, 0.f, 1.f); - LLViewDrawContext context(alpha); LLFloater::draw(); - if (alpha == 1.f) + if (mOpenTimer.getElapsedTimeF32() > STAY_TIME) { mOpenTimer.stop(); + mCloseTimer.start(); } - + } else if (mCloseTimer.getStarted()) { @@ -95,3 +95,16 @@ void LLInspect::onFocusLost() mCloseTimer.start(); mOpenTimer.stop(); } + +// virtual +BOOL LLInspect::handleHover(S32 x, S32 y, MASK mask) +{ + mOpenTimer.pause(); + return LLView::handleHover(x, y, mask); +} + +// virtual +void LLInspect::onMouseLeave(S32 x, S32 y, MASK mask) +{ + mOpenTimer.unpause(); +} diff --git a/indra/newview/llinspect.h b/indra/newview/llinspect.h index a461c2fa16..731e99534b 100644 --- a/indra/newview/llinspect.h +++ b/indra/newview/llinspect.h @@ -46,6 +46,9 @@ public: /// Inspectors have a custom fade-in/fade-out animation /*virtual*/ void draw(); + /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask); + /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); + /// Start open animation /*virtual*/ void onOpen(const LLSD& avatar_id); diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp index 866669f326..83beae29c1 100644 --- a/indra/newview/llinspectavatar.cpp +++ b/indra/newview/llinspectavatar.cpp @@ -133,7 +133,6 @@ private: LLUUID mAvatarID; // Need avatar name information to spawn friend add request std::string mAvatarName; - LLUUID mPartnerID; // an in-flight request for avatar properties from LLAvatarPropertiesProcessor // is represented by this object LLFetchAvatarData* mPropertiesRequest; @@ -187,8 +186,7 @@ public: LLInspectAvatar::LLInspectAvatar(const LLSD& sd) : LLInspect( LLSD() ), // single_instance, doesn't really need key - mAvatarID(), // set in onOpen() - mPartnerID(), + mAvatarID(), // set in onOpen() *Note: we used to show partner's name but we dont anymore --angela 3rd Dec* mAvatarName(), mPropertiesRequest(NULL) { @@ -257,7 +255,6 @@ void LLInspectAvatar::onOpen(const LLSD& data) // Extract appropriate avatar id mAvatarID = data["avatar_id"]; - mPartnerID = LLUUID::null; BOOL self = mAvatarID == gAgent.getID(); @@ -307,7 +304,6 @@ void LLInspectAvatar::requestUpdate() getChild("user_name")->setValue(""); getChild("user_subtitle")->setValue(""); getChild("user_details")->setValue(""); - getChild("user_partner")->setValue(""); // Make a new request for properties delete mPropertiesRequest; @@ -365,15 +361,6 @@ void LLInspectAvatar::processAvatarData(LLAvatarData* data) std::string details = getString("Details", args); getChild("user_details")->setValue( LLSD(details) ); - // Look up partner name, if there is one - mPartnerID = data->partner_id; - if (mPartnerID.notNull()) - { - gCacheName->get(mPartnerID, FALSE, - boost::bind(&LLInspectAvatar::nameUpdatedCallback, - this, _1, _2, _3, _4)); - } - // Delete the request object as it has been satisfied delete mPropertiesRequest; mPropertiesRequest = NULL; @@ -455,15 +442,6 @@ void LLInspectAvatar::nameUpdatedCallback( mAvatarName = first + " " + last; childSetValue("user_name", LLSD(mAvatarName) ); } - - if (id == mPartnerID) - { - LLStringUtil::format_map_t args; - args["[PARTNER]"] = first + " " + last; - std::string partner = getString("Partner", args); - getChild("user_partner")->setValue(partner); - } - // Otherwise possibly a request for an older inspector, ignore it } void LLInspectAvatar::onClickAddFriend() diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 96e64051a2..4c28d5e2df 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -3776,8 +3776,14 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags) getClipboardEntries(true, items, disabled_items, flags); items.push_back(std::string("Gesture Separator")); - items.push_back(std::string("Activate")); - items.push_back(std::string("Deactivate")); + if (LLGestureManager::instance().isGestureActive(getUUID())) + { + items.push_back(std::string("Deactivate")); + } + else + { + items.push_back(std::string("Activate")); + } } hide_context_entries(menu, items, disabled_items); } diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 09c215e660..758d8ff903 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -243,38 +243,54 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p) addChild(mAddLandmarkBtn); LLButton::Params for_sale_button = p.for_sale_button; + for_sale_button.tool_tip = LLTrans::getString("LocationCtrlForSaleTooltip"); for_sale_button.click_callback.function( boost::bind(&LLLocationInputCtrl::onForSaleButtonClicked, this)); mForSaleBtn = LLUICtrlFactory::create( for_sale_button ); - // *TODO: Make clickable? addChild(mForSaleBtn); // Parcel property icons + // Must be mouse-opaque so cursor stays as an arrow when hovering to + // see tooltip. LLIconCtrl::Params voice_icon = p.voice_icon; + voice_icon.tool_tip = LLTrans::getString("LocationCtrlVoiceTooltip"); + voice_icon.mouse_opaque = true; mParcelIcon[VOICE_ICON] = LLUICtrlFactory::create(voice_icon); addChild(mParcelIcon[VOICE_ICON]); LLIconCtrl::Params fly_icon = p.fly_icon; + fly_icon.tool_tip = LLTrans::getString("LocationCtrlFlyTooltip"); + fly_icon.mouse_opaque = true; mParcelIcon[FLY_ICON] = LLUICtrlFactory::create(fly_icon); addChild(mParcelIcon[FLY_ICON]); LLIconCtrl::Params push_icon = p.push_icon; + push_icon.tool_tip = LLTrans::getString("LocationCtrlPushTooltip"); + push_icon.mouse_opaque = true; mParcelIcon[PUSH_ICON] = LLUICtrlFactory::create(push_icon); addChild(mParcelIcon[PUSH_ICON]); LLIconCtrl::Params build_icon = p.build_icon; + build_icon.tool_tip = LLTrans::getString("LocationCtrlBuildTooltip"); + build_icon.mouse_opaque = true; mParcelIcon[BUILD_ICON] = LLUICtrlFactory::create(build_icon); addChild(mParcelIcon[BUILD_ICON]); LLIconCtrl::Params scripts_icon = p.scripts_icon; + scripts_icon.tool_tip = LLTrans::getString("LocationCtrlScriptsTooltip"); + scripts_icon.mouse_opaque = true; mParcelIcon[SCRIPTS_ICON] = LLUICtrlFactory::create(scripts_icon); addChild(mParcelIcon[SCRIPTS_ICON]); LLIconCtrl::Params damage_icon = p.damage_icon; + damage_icon.tool_tip = LLTrans::getString("LocationCtrlDamageTooltip"); + damage_icon.mouse_opaque = true; mParcelIcon[DAMAGE_ICON] = LLUICtrlFactory::create(damage_icon); addChild(mParcelIcon[DAMAGE_ICON]); LLTextBox::Params damage_text = p.damage_text; + damage_text.tool_tip = LLTrans::getString("LocationCtrlDamageTooltip"); + damage_text.mouse_opaque = true; mDamageText = LLUICtrlFactory::create(damage_text); addChild(mDamageText); diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index 18e5169930..3a1ae5bf46 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -264,6 +264,7 @@ void LLNearbyChat::updateChatHistoryStyle() addMessage(*it,false); } } + //static void LLNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue) { @@ -271,3 +272,20 @@ void LLNearbyChat::processChatHistoryStyleUpdate(const LLSD& newvalue) if(nearby_chat) nearby_chat->updateChatHistoryStyle(); } + + +//////////////////////////////////////////////////////////////////////////////// +// +void LLNearbyChat::onFocusReceived() +{ + setBackgroundOpaque(true); + LLPanel::onFocusReceived(); +} + +//////////////////////////////////////////////////////////////////////////////// +// +void LLNearbyChat::onFocusLost() +{ + setBackgroundOpaque(false); + LLPanel::onFocusLost(); +} diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 1cbc2a3478..938b77df7a 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -51,6 +51,10 @@ public: void onNearbyChatContextMenuItemClicked(const LLSD& userdata); bool onNearbyChatCheckContextMenuItem(const LLSD& userdata); + // focus overrides + /*virtual*/ void onFocusLost(); + /*virtual*/ void onFocusReceived(); + /*virtual*/ void onOpen (const LLSD& key); /*virtual*/ void setVisible(BOOL visible); diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index d2a17dbd97..4bae6af12e 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -191,7 +191,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, gViewerWindow->getRootView()->addChildInBack(this); // Logo - mLogoImage = LLUI::getUIImage("startup_logo.j2c"); + mLogoImage = LLUI::getUIImage("startup_logo"); LLUICtrlFactory::getInstance()->buildPanel(this, "panel_login.xml"); diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 754df33bd4..4f8aff6f78 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -1697,6 +1697,7 @@ void LLPanelObjectInventory::updateInventory() mFolders->requestArrange(); mInventoryNeedsUpdate = FALSE; + LLEditMenuHandler::gEditMenuHandler = mFolders; } // *FIX: This is currently a very expensive operation, because we have @@ -1941,3 +1942,22 @@ void LLPanelObjectInventory::idle(void* user_data) self->updateInventory(); } } + +void LLPanelObjectInventory::onFocusLost() +{ + // inventory no longer handles cut/copy/paste/delete + if (LLEditMenuHandler::gEditMenuHandler == mFolders) + { + LLEditMenuHandler::gEditMenuHandler = NULL; + } + + LLPanel::onFocusLost(); +} + +void LLPanelObjectInventory::onFocusReceived() +{ + // inventory now handles cut/copy/paste/delete + LLEditMenuHandler::gEditMenuHandler = mFolders; + + LLPanel::onFocusReceived(); +} diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h index 6722bb212e..bc339ece35 100644 --- a/indra/newview/llpanelobjectinventory.h +++ b/indra/newview/llpanelobjectinventory.h @@ -74,6 +74,9 @@ public: virtual void deleteAllChildren(); virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, std::string& tooltip_msg); + /*virtual*/ void onFocusLost(); + /*virtual*/ void onFocusReceived(); + static void idle(void* user_data); protected: diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 7c9bd582dd..158c857031 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -226,7 +226,12 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("test_inspectors", "floater_test_inspectors.xml", &LLFloaterReg::build); //LLFloaterReg::add("test_list_view", "floater_test_list_view.xml",&LLFloaterReg::build); - LLFloaterReg::add("test_widgets", "floater_test_widgets.xml", &LLFloaterReg::build); + LLFloaterReg::add("test_textbox", "floater_test_textbox.xml", + &LLFloaterReg::build); + LLFloaterReg::add("test_text_editor", "floater_test_text_editor.xml", + &LLFloaterReg::build); + LLFloaterReg::add("test_widgets", "floater_test_widgets.xml", + &LLFloaterReg::build); LLFloaterReg::add("top_objects", "floater_top_objects.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("reporter", "floater_report_abuse.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index bcb3a2e72d..f20d87a687 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -509,11 +509,13 @@ bool LLViewerInventoryCategory::fetchDescendents() // This comes from LLInventoryFilter from llfolderview.h U32 sort_order = gSavedSettings.getU32("InventorySortOrder") & 0x1; - // *NOTE - // Temporary workaround for bug EXT-2879, see ticket for details. - // Commented gAgent.getRegion()->getCapability in order to use the old system. - std::string url;//= gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); - + // *NOTE: For bug EXT-2879, originally commented out + // gAgent.getRegion()->getCapability in order to use the old + // message-based system. This has been uncommented now that + // AIS folks are aware of the issue and have a fix in process. + // see ticket for details. + + std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); if (!url.empty()) //Capability found. Build up LLSD and use it. { LLInventoryModel::startBackgroundFetch(mUUID); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index a9194c0c3b..93b0ad4a5b 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -3834,15 +3834,6 @@ U32 LLVOAvatar::renderTransparent(BOOL first_pass) gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); } - bool should_alpha_mask = shouldAlphaMask(); - - LLGLState test(GL_ALPHA_TEST, should_alpha_mask); - - if (should_alpha_mask) - { - gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.5f); - } - if (isTextureVisible(TEX_HEAD_BAKED)) { num_indices += mMeshLOD[MESH_ID_EYELASH]->render(mAdjustedPixelArea, first_pass, mIsDummy); @@ -6011,8 +6002,7 @@ void LLVOAvatar::updateMeshTextures() } } else if (mBakedTextureDatas[i].mTexLayerSet - && !other_culled - && (i != BAKED_HAIR || mSupportsAlphaLayers)) // ! BACKWARDS COMPATIBILITY ! workaround for old viewers. + && !other_culled) { mBakedTextureDatas[i].mTexLayerSet->createComposite(); mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled( TRUE ); @@ -6024,9 +6014,10 @@ void LLVOAvatar::updateMeshTextures() } } - // ! BACKWARDS COMPATIBILITY ! - // Workaround for viewing avatars from old viewers that haven't baked hair textures. - if (!mSupportsAlphaLayers) + // set texture and color of hair manually if we are not using a baked image. + // This can happen while loading hair for yourself, or for clients that did not + // bake a hair texture. Still needed for yourself after 1.22 is depricated. + if (!is_layer_baked[BAKED_HAIR] || self_customizing) { const LLColor4 color = mTexHairColor ? mTexHairColor->getColor() : LLColor4(1,1,1,1); LLViewerTexture* hair_img = getImage( TEX_HAIR, 0 ); diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index 85cb145dbc..acb3262093 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -686,6 +686,6 @@ value="0.3 0.3 0.3 1.0" /> + reference="EmphasisColor" /> diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 3e0820544a..b1116dc0d2 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -343,8 +343,8 @@ with the same filename but different name - - + + @@ -363,8 +363,8 @@ with the same filename but different name - - + + @@ -488,6 +488,8 @@ with the same filename but different name + + @@ -706,7 +708,6 @@ with the same filename but different name - diff --git a/indra/newview/skins/default/textures/windows/startup_logo.png b/indra/newview/skins/default/textures/windows/startup_logo.png new file mode 100644 index 0000000000..b89449692b Binary files /dev/null and b/indra/newview/skins/default/textures/windows/startup_logo.png differ diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 8bfd64b3df..d1fd42bdd9 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -7,7 +7,7 @@ help_topic="floaterland" save_rect="true" title="ABOUT LAND" - width="460"> + width="490"> [MINUTES] minutes @@ -25,25 +25,25 @@ remaining + tab_height="25" + tab_min_width="67" + top="10" + width="489"> + top="0"> New users only @@ -74,11 +74,11 @@ - Profile... + Profile - Info... + Info @@ -95,7 +95,6 @@ No parcel selected. -Go to World menu > About Land or select another parcel to show its details. + top="10" + width="100"> Name: + width="365" /> Description: @@ -136,10 +132,10 @@ Go to World menu > About Land or select another parcel to show its details. follows="left|top|right" height="52" layout="topleft" - left_delta="92" + left_pad="2" name="Description" top_delta="0" - width="350" + width="365" word_wrap="true" /> + width="100"> Type: @@ -171,10 +167,9 @@ Go to World menu > About Land or select another parcel to show its details. follows="left|top" height="16" layout="topleft" - left="4" + left="10" name="ContentRating" - top="104" - width="92"> + width="100"> Rating: @@ -195,10 +190,10 @@ Go to World menu > About Land or select another parcel to show its details. follows="left|top" height="16" layout="topleft" - left="4" + left="10" name="Owner:" top="124" - width="92"> + width="100"> Owner: + width="240"> Leyla Linden - + diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml index 4293051dbd..6479fc91ca 100644 --- a/indra/newview/skins/default/xui/en/panel_toast.xml +++ b/indra/newview/skins/default/xui/en/panel_toast.xml @@ -5,28 +5,28 @@ + name="toast" + title="" + visible="false" + layout="topleft" + height="40" + width="305" + left="0" + top="0" + follows="right|bottom" + bg_opaque_image="Toast_Background" + bg_alpha_image="Toast_Background" + can_minimize="false" + can_tear_off="false" + can_resize="false" + can_drag_on_left="false" + can_close="false" + can_dock="false" + border_visible = "false" + border_drop_shadow_visible = "false" + drop_shadow_visible = "false" + border = "false" +> Not Connected - PG - Mature + General + Moderate Adult Offline Unknown @@ -2777,11 +2777,19 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Wild Wrinkles - + Add to My Landmarks Edit My Landmark See more info about the current location My location history + Buy this land + Voice not available here + Flying not allowed + No pushing + Building/dropping objects not allowed + Scripts not allowed + Health diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml index c0e1944f56..9990324d03 100644 --- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml +++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml @@ -9,5 +9,6 @@ header_image_over="Accordion_Over" header_image_pressed="Accordion_Press" header_image_expanded="Accordion_Selected" - header_text_color="LtGray" + header_text_color="LtGray" + font="SansSerif" /> diff --git a/indra/newview/skins/default/xui/en/widgets/chat_history.xml b/indra/newview/skins/default/xui/en/widgets/chat_history.xml index 32916c0816..2be37d222a 100644 --- a/indra/newview/skins/default/xui/en/widgets/chat_history.xml +++ b/indra/newview/skins/default/xui/en/widgets/chat_history.xml @@ -15,4 +15,5 @@ track_bottom="true" name="chat_history" type="string" - word_wrap="true" /> \ No newline at end of file + word_wrap="true" + font="SansSerif"/> diff --git a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml index 5011bf6a61..e5af961a56 100644 --- a/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml +++ b/indra/newview/skins/default/xui/en/widgets/chiclet_script.xml @@ -1,6 +1,7 @@ + name="script_chiclet" + font="SansSerif"> - diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml index d32952b04f..0e2700cb80 100644 --- a/indra/newview/skins/default/xui/en/widgets/location_input.xml +++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml @@ -20,6 +20,8 @@ follows="left|top" allow_new_values="true" > + - - + diff --git a/indra/newview/skins/default/xui/en/widgets/radio_item.xml b/indra/newview/skins/default/xui/en/widgets/radio_item.xml index dd848f3acd..3ddf18b2cb 100644 --- a/indra/newview/skins/default/xui/en/widgets/radio_item.xml +++ b/indra/newview/skins/default/xui/en/widgets/radio_item.xml @@ -1,5 +1,5 @@ - + + track_highlight_vertical_image="SliderTrack_Vert" + font="SansSerif" /> diff --git a/indra/newview/skins/default/xui/en/widgets/spinner.xml b/indra/newview/skins/default/xui/en/widgets/spinner.xml index 7d1a5118cb..ab3f8df5f8 100644 --- a/indra/newview/skins/default/xui/en/widgets/spinner.xml +++ b/indra/newview/skins/default/xui/en/widgets/spinner.xml @@ -1,6 +1,7 @@ - + diff --git a/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml b/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml index 2f72ad65a1..f4dbb8f404 100644 --- a/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml +++ b/indra/newview/skins/default/xui/en/widgets/ui_ctrl.xml @@ -1,5 +1,5 @@ +