diff options
| -rw-r--r-- | indra/llui/llaccordionctrltab.cpp | 55 | ||||
| -rw-r--r-- | indra/llui/llpanel.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llviewermessage.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_script_ed.xml | 1 | 
5 files changed, 29 insertions, 32 deletions
| diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index 179b32098a..9d49c1a831 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -456,8 +456,7 @@ BOOL LLAccordionCtrlTab::handleMouseDown(S32 x, S32 y, MASK mask)  	{  		if(y >= (getRect().getHeight() - HEADER_HEIGHT) )  		{ -			LLAccordionCtrlTabHeader* header = getChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -			header->setFocus(true); +			mHeader->setFocus(true);  			changeOpenClose(getDisplayChildren());  			//reset stored state @@ -509,10 +508,9 @@ void LLAccordionCtrlTab::setAccordionView(LLView* panel)  std::string LLAccordionCtrlTab::getTitle() const  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		return header->getTitle(); +		return mHeader->getTitle();  	}  	else  	{ @@ -522,57 +520,51 @@ std::string LLAccordionCtrlTab::getTitle() const  void LLAccordionCtrlTab::setTitle(const std::string& title, const std::string& hl)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		header->setTitle(title, hl); +		mHeader->setTitle(title, hl);  	}  }  void LLAccordionCtrlTab::setTitleFontStyle(std::string style)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		header->setTitleFontStyle(style); +		mHeader->setTitleFontStyle(style);  	}  }  void LLAccordionCtrlTab::setTitleColor(LLUIColor color)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		header->setTitleColor(color); +		mHeader->setTitleColor(color);  	}  }  boost::signals2::connection LLAccordionCtrlTab::setFocusReceivedCallback(const focus_signal_t::slot_type& cb)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		return header->setFocusReceivedCallback(cb); +		return mHeader->setFocusReceivedCallback(cb);  	}  	return boost::signals2::connection();  }  boost::signals2::connection LLAccordionCtrlTab::setFocusLostCallback(const focus_signal_t::slot_type& cb)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		return header->setFocusLostCallback(cb); +		return mHeader->setFocusLostCallback(cb);  	}  	return boost::signals2::connection();  }  void LLAccordionCtrlTab::setSelected(bool is_selected)  { -	LLAccordionCtrlTabHeader* header = findChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME); -	if (header) +	if (mHeader)  	{ -		header->setSelected(is_selected); +		mHeader->setSelected(is_selected);  	}  } @@ -776,8 +768,7 @@ S32 LLAccordionCtrlTab::notify(const LLSD& info)  BOOL LLAccordionCtrlTab::handleKey(KEY key, MASK mask, BOOL called_from_parent)  { -	LLAccordionCtrlTabHeader* header = getChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME);	 -	if( !header->hasFocus() ) +	if( !mHeader->hasFocus() )  		return LLUICtrl::handleKey(key, mask, called_from_parent);  	if ( (key == KEY_RETURN )&& mask == MASK_NONE) @@ -830,15 +821,19 @@ BOOL LLAccordionCtrlTab::handleKey(KEY key, MASK mask, BOOL called_from_parent)  void LLAccordionCtrlTab::showAndFocusHeader()  { -	LLAccordionCtrlTabHeader* header = getChild<LLAccordionCtrlTabHeader>(DD_HEADER_NAME);	 -	header->setFocus(true); -	header->setSelected(mSelectionEnabled); +	mHeader->setFocus(true); +	mHeader->setSelected(mSelectionEnabled);  	LLRect screen_rc; -	LLRect selected_rc = header->getRect(); +	LLRect selected_rc = mHeader->getRect();  	localRectToScreen(selected_rc, &screen_rc); -	notifyParent(LLSD().with("scrollToShowRect",screen_rc.getValue())); +	// This call to notifyParent() is intended to deliver "scrollToShowRect" command +	// to the parent LLAccordionCtrl so by calling it from the direct parent of this +	// accordion tab (assuming that the parent is an LLAccordionCtrl) the calls chain +	// is shortened and messages from inside the collapsed tabs are avoided. +	// See STORM-536. +	getParent()->notifyParent(LLSD().with("scrollToShowRect",screen_rc.getValue()));  }  void    LLAccordionCtrlTab::storeOpenCloseState()  { diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index c8e56630f1..900e2c789e 100644 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -904,7 +904,7 @@ LLPanel *LLPanel::childGetVisiblePanelWithHelp()  		child = *it;  		// do we have a panel with a help topic?  		LLPanel *panel = dynamic_cast<LLPanel *>(child); -		if (panel && panel->getVisible() && !panel->getHelpTopic().empty()) +		if (panel && panel->isInVisibleChain() && !panel->getHelpTopic().empty())  		{  			return panel;  		} diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index c38cd4d090..62ba746a02 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -2429,6 +2429,7 @@ S32	LLFolderView::notify(const LLSD& info)  		{  			setFocus(true);  			selectFirstItem(); +			scrollToShowSelection();  			return 1;  		} @@ -2436,6 +2437,7 @@ S32	LLFolderView::notify(const LLSD& info)  		{  			setFocus(true);  			selectLastItem(); +			scrollToShowSelection();  			return 1;  		}  	} diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 672213d3e8..598ad7afc6 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -1199,7 +1199,6 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam  		const BOOL auto_open =   			gSavedSettings.getBOOL("ShowInInventory") && // don't open if showininventory is false  			!(asset_type == LLAssetType::AT_CALLINGCARD) && // don't open if it's a calling card -			!(item && (item->getInventoryType() == LLInventoryType::IT_ATTACHMENT)) && // don't open if it's an item that's an attachment  			!from_name.empty(); // don't open if it's not from anyone.  		LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open);  		if(active_panel) diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml index c5c66c04d5..1e332a40c2 100644 --- a/indra/newview/skins/default/xui/en/panel_script_ed.xml +++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml @@ -141,6 +141,7 @@       layout="topleft"       max_length="65536"       name="Script Editor" +     text_readonly_color="DkGray"       width="487"       show_line_numbers="true"        word_wrap="true"> | 
