diff options
Diffstat (limited to 'indra/llui/llcombobox.cpp')
| -rw-r--r-- | indra/llui/llcombobox.cpp | 19 | 
1 files changed, 9 insertions, 10 deletions
diff --git a/indra/llui/llcombobox.cpp b/indra/llui/llcombobox.cpp index e223e1c0bf..c1d512e148 100644 --- a/indra/llui/llcombobox.cpp +++ b/indra/llui/llcombobox.cpp @@ -160,7 +160,7 @@ LLComboBox::LLComboBox(const LLComboBox::Params& p)  	createLineEditor(p); -	setTopLostCallback(boost::bind(&LLComboBox::hideList, this)); +	mTopLostSignalConnection = setTopLostCallback(boost::bind(&LLComboBox::hideList, this));  }  void LLComboBox::initFromParams(const LLComboBox::Params& p) @@ -187,6 +187,9 @@ BOOL LLComboBox::postBuild()  LLComboBox::~LLComboBox()  {  	// children automatically deleted, including mMenu, mButton + +	// explicitly disconect this signal, since base class destructor might fire top lost +	mTopLostSignalConnection.disconnect();  } @@ -616,16 +619,14 @@ void LLComboBox::showList()  	mList->setFocus(TRUE); -	// register ourselves as a "top" control -	// effectively putting us into a special draw layer -	// and not affecting the bounding rectangle calculation -	gFocusMgr.setTopCtrl(this); -  	// Show the list and push the button down  	mButton->setToggleState(TRUE);  	mList->setVisible(TRUE); +	LLUI::addPopup(this); +  	setUseBoundingRect(TRUE); +//	updateBoundingRect();  }  void LLComboBox::hideList() @@ -648,10 +649,8 @@ void LLComboBox::hideList()  		mList->mouseOverHighlightNthItem(-1);  		setUseBoundingRect(FALSE); -		if( gFocusMgr.getTopCtrl() == this ) -		{ -			gFocusMgr.setTopCtrl(NULL); -		} +		LLUI::removePopup(this); +//		updateBoundingRect();  	}  }  | 
