diff options
31 files changed, 149 insertions, 262 deletions
| diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index d1d840729d..3085921e04 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -174,6 +174,7 @@ LLFloater::Params::Params()  	save_rect("save_rect", false),  	save_visibility("save_visibility", false),  	can_dock("can_dock", false), +	show_title("show_title", true),  	open_positioning("open_positioning", LLFloaterEnums::OPEN_POSITIONING_NONE),  	specified_left("specified_left"),  	specified_bottom("specified_bottom"), @@ -538,7 +539,6 @@ LLFloater::~LLFloater()  		delete mResizeHandle[i];  	} -	storeRectControl();  	setVisible(false); // We're not visible if we're destroyed  	storeVisibilityControl();  	storeDockStateControl(); @@ -1142,10 +1142,6 @@ void LLFloater::setMinimized(BOOL minimize)  			mButtonsEnabled[BUTTON_RESTORE] = TRUE;  		} -		if (mDragHandle) -		{ -			mDragHandle->setVisible(TRUE); -		}  		setBorderVisible(TRUE);  		for(handle_set_iter_t dependent_it = mDependents.begin(); @@ -1296,19 +1292,9 @@ void LLFloater::setIsChrome(BOOL is_chrome)  		mButtons[BUTTON_CLOSE]->setToolTip(LLStringExplicit(getButtonTooltip(Params(), BUTTON_CLOSE, is_chrome)));  	} -	// no titles displayed on "chrome" floaters -	if (mDragHandle) -		mDragHandle->setTitleVisible(!is_chrome); -	  	LLPanel::setIsChrome(is_chrome);  } -void LLFloater::setTitleVisible(bool visible) -{ -	if (mDragHandle) -		mDragHandle->setTitleVisible(visible); -} -  // Change the draw style to account for the foreground state.  void LLFloater::setForeground(BOOL front)  { @@ -1812,7 +1798,7 @@ void LLFloater::draw()  		{  			drawChild(mButtons[i]);  		} -		drawChild(mDragHandle); +		drawChild(mDragHandle, 0, 0, TRUE);  	}  	else  	{ @@ -2991,6 +2977,11 @@ void LLFloater::initFromParams(const LLFloater::Params& p)  	{  		setCloseCallback(initCommitCallback(p.close_callback));  	} + +	if (mDragHandle) +	{ +		mDragHandle->setTitleVisible(p.show_title); +	}  }  boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_t::slot_type& cb )  diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 8beb11507e..f610b04e35 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -128,7 +128,8 @@ public:  								save_rect,  								save_visibility,  								save_dock_state, -								can_dock; +								can_dock, +								show_title;  		Optional<LLFloaterEnums::EOpenPositioning>	open_positioning;  		Optional<S32>								specified_left; @@ -209,7 +210,6 @@ public:  	std::string		getTitle() const;  	void			setShortTitle( const std::string& short_title );  	std::string		getShortTitle() const; -	void			setTitleVisible(bool visible);  	virtual void	setMinimized(BOOL b);  	void			moveResizeHandlesToFront();  	void			addDependentFloater(LLFloater* dependent, BOOL reposition = TRUE); diff --git a/indra/llui/llfloaterreg.cpp b/indra/llui/llfloaterreg.cpp index 0edfc8da2d..df3cff9968 100644 --- a/indra/llui/llfloaterreg.cpp +++ b/indra/llui/llfloaterreg.cpp @@ -462,16 +462,16 @@ void LLFloaterReg::toggleInstanceOrBringToFront(const LLSD& sdname, const LLSD&  	else if (instance->isMinimized())  	{  		instance->setMinimized(FALSE); -		instance->setFocus(TRUE); +		instance->setVisibleAndFrontmost();  	}  	else if (!instance->isShown())  	{  		instance->openFloater(key); -		instance->setFocus(TRUE); +		instance->setVisibleAndFrontmost();  	} -	else if (!instance->hasFocus() && !instance->getIsChrome()) +	else if (!instance->isFrontmost())  	{ -		instance->setFocus(TRUE); +		instance->setVisibleAndFrontmost();  	}  	else  	{ diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp index 4991c4afa6..0e7060e22c 100644 --- a/indra/llui/lllayoutstack.cpp +++ b/indra/llui/lllayoutstack.cpp @@ -47,6 +47,19 @@ void LLLayoutStack::OrientationNames::declareValues()  //  // LLLayoutPanel  // +LLLayoutPanel::Params::Params()	 +:	expanded_min_dim("expanded_min_dim", 0), +	min_dim("min_dim", 0), +	max_dim("max_dim", S32_MAX), +	user_resize("user_resize", true), +	auto_resize("auto_resize", true) +{ +	addSynonym(min_dim, "min_width"); +	addSynonym(min_dim, "min_height"); +	addSynonym(max_dim, "max_width"); +	addSynonym(max_dim, "max_height"); +} +  LLLayoutPanel::LLLayoutPanel(const Params& p)	  :	LLPanel(p),  	mExpandedMinDimSpecified(false), @@ -527,8 +540,8 @@ void LLLayoutStack::updateLayout(BOOL force_resize)  	// not enough room to fit existing contents  	if (force_resize == FALSE  		// layout did not complete by reaching target position -		&& ((mOrientation == VERTICAL && cur_y != -mPanelSpacing) -			|| (mOrientation == HORIZONTAL && cur_x != getRect().getWidth() + mPanelSpacing))) +		&& ((mOrientation == VERTICAL && llround(cur_y) != -mPanelSpacing) +			|| (mOrientation == HORIZONTAL && llround(cur_x) != getRect().getWidth() + mPanelSpacing)))  	{  		// do another layout pass with all stacked elements contributing  		// even those that don't usually resize diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index 5d79505fc3..ede6149a80 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -161,18 +161,7 @@ public:  		Optional<bool>			user_resize,  								auto_resize; -		Params() -		:	expanded_min_dim("expanded_min_dim", 0), -			min_dim("min_dim", 0), -			max_dim("max_dim", 0), -			user_resize("user_resize", true), -			auto_resize("auto_resize", true) -		{ -			addSynonym(min_dim, "min_width"); -			addSynonym(min_dim, "min_height"); -			addSynonym(max_dim, "max_width"); -			addSynonym(max_dim, "max_height"); -		} +		Params();  	};  	~LLLayoutPanel(); diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index 9c6a76822c..ad1f3c504d 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -548,23 +548,23 @@ BOOL LLTabContainer::handleMouseDown( S32 x, S32 y, MASK mask )  	}  	S32 tab_count = getTabCount(); -	if (tab_count > 0) +	if (tab_count > 0 && !getTabsHidden())  	{  		LLTabTuple* firsttuple = getTab(0);  		LLRect tab_rect;  		if (mIsVertical)  		{  			tab_rect = LLRect(firsttuple->mButton->getRect().mLeft, -							  has_scroll_arrows ? mPrevArrowBtn->getRect().mBottom - tabcntrv_pad : mPrevArrowBtn->getRect().mTop, -							  firsttuple->mButton->getRect().mRight, -							  has_scroll_arrows ? mNextArrowBtn->getRect().mTop + tabcntrv_pad : mNextArrowBtn->getRect().mBottom ); +								has_scroll_arrows ? mPrevArrowBtn->getRect().mBottom - tabcntrv_pad : mPrevArrowBtn->getRect().mTop, +								firsttuple->mButton->getRect().mRight, +								has_scroll_arrows ? mNextArrowBtn->getRect().mTop + tabcntrv_pad : mNextArrowBtn->getRect().mBottom );  		}  		else  		{  			tab_rect = LLRect(has_scroll_arrows ? mPrevArrowBtn->getRect().mRight : mJumpPrevArrowBtn->getRect().mLeft, -							  firsttuple->mButton->getRect().mTop, -							  has_scroll_arrows ? mNextArrowBtn->getRect().mLeft : mJumpNextArrowBtn->getRect().mRight, -							  firsttuple->mButton->getRect().mBottom ); +								firsttuple->mButton->getRect().mTop, +								has_scroll_arrows ? mNextArrowBtn->getRect().mLeft : mJumpNextArrowBtn->getRect().mRight, +								firsttuple->mButton->getRect().mBottom );  		}  		if( tab_rect.pointInRect( x, y ) )  		{ @@ -681,7 +681,7 @@ BOOL LLTabContainer::handleToolTip( S32 x, S32 y, MASK mask)  {  	static LLUICachedControl<S32> tabcntrv_pad ("UITabCntrvPad", 0);  	BOOL handled = LLPanel::handleToolTip( x, y, mask); -	if (!handled && getTabCount() > 0)  +	if (!handled && getTabCount() > 0 && !getTabsHidden())   	{  		LLTabTuple* firsttuple = getTab(0); @@ -812,7 +812,9 @@ BOOL LLTabContainer::handleDragAndDrop(S32 x, S32 y, MASK mask,	BOOL drop,	EDrag  {  	BOOL has_scroll_arrows = (getMaxScrollPos() > 0); -	if( mDragAndDropDelayTimer.getStarted() && mDragAndDropDelayTimer.getElapsedTimeF32() > SCROLL_DELAY_TIME ) +	if( !getTabsHidden() +		&& mDragAndDropDelayTimer.getStarted()  +		&& mDragAndDropDelayTimer.getElapsedTimeF32() > SCROLL_DELAY_TIME )  	{  		if (has_scroll_arrows)  		{ diff --git a/indra/llui/lltoolbar.cpp b/indra/llui/lltoolbar.cpp index 629c7d9bc7..c559a2bf1d 100644 --- a/indra/llui/lltoolbar.cpp +++ b/indra/llui/lltoolbar.cpp @@ -302,7 +302,50 @@ bool LLToolBar::enableCommand(const LLCommandId& commandId, bool enabled)  		command_id_map::iterator it = mButtonMap.find(commandId.uuid());  		if (it != mButtonMap.end())  		{ -			it->second->setEnabled(enabled); +			command_button = it->second; +			command_button->setEnabled(enabled); +		} +	} + +	return (command_button != NULL); +} + +bool LLToolBar::stopCommandInProgress(const LLCommandId& commandId) +{ +	// +	// Note from Leslie: +	// +	// This implementation was largely put in place to handle EXP-1348 which is related to +	// dragging and dropping the "speak" button.  The "speak" button can be in one of two +	// modes, i.e., either a toggle action or a push-to-talk action.  Because of this it +	// responds to mouse down and mouse up in different ways, based on which behavior the +	// button is currently set to obey.  This was the simplest way of getting the button +	// to turn off the microphone for both behaviors without risking duplicate state. +	// + +	LLToolBarButton * command_button = NULL; + +	if (commandId != LLCommandId::null) +	{ +		LLCommand* command = LLCommandManager::instance().getCommand(commandId); +		llassert(command); + +		// If this command has an explicit function for execution stop +		if (command->executeStopFunctionName().length() > 0) +		{ +			command_id_map::iterator it = mButtonMap.find(commandId.uuid()); +			if (it != mButtonMap.end()) +			{ +				command_button = it->second; +				llassert(command_button->mIsRunningSignal); + +				// Check to see if it is running +				if ((*command_button->mIsRunningSignal)(command_button, command->isRunningParameters())) +				{ +					// Trigger an additional button commit, which calls mouse down, mouse up and commit +					command_button->onCommit(); +				} +			}  		}  	} diff --git a/indra/llui/lltoolbar.h b/indra/llui/lltoolbar.h index 616710ea70..ad42d1fa35 100644 --- a/indra/llui/lltoolbar.h +++ b/indra/llui/lltoolbar.h @@ -185,6 +185,7 @@ public:  	int  removeCommand(const LLCommandId& commandId);		// Returns the rank the removed command was at, RANK_NONE if not found  	bool hasCommand(const LLCommandId& commandId) const;  	bool enableCommand(const LLCommandId& commandId, bool enabled); +	bool stopCommandInProgress(const LLCommandId& commandId);  	void setStartDragCallback(tool_startdrag_callback_t cb)   { mStartDragItemCallback  = cb; }  	void setHandleDragCallback(tool_handledrag_callback_t cb) { mHandleDragItemCallback = cb; } diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index fdb84f1ec5..3fd7e48428 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -721,7 +721,7 @@ LLView* LLView::childrenHandleCharEvent(const std::string& desc, const METHOD& m  // XDATA might be MASK, or S32 clicks  template <typename METHOD, typename XDATA> -LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra) +LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra, bool allow_mouse_block)  {  	BOOST_FOREACH(LLView* viewp, mChildList)  	{ @@ -734,7 +734,7 @@ LLView* LLView::childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDA  		}  		if ((viewp->*method)( local_x, local_y, extra ) -			|| viewp->blockMouseEvent( local_x, local_y )) +			|| (allow_mouse_block && viewp->blockMouseEvent( local_x, local_y )))  		{  			viewp->logMouseEvent();  			return viewp; @@ -1021,7 +1021,7 @@ BOOL LLView::handleMiddleMouseUp(S32 x, S32 y, MASK mask)  LLView* LLView::childrenHandleScrollWheel(S32 x, S32 y, S32 clicks)  { -	return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks); +	return childrenHandleMouseEvent(&LLView::handleScrollWheel, x, y, clicks, false);  }  // Called during downward traversal diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 6d1dda90af..08828e55e6 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -565,7 +565,7 @@ protected:  private:  	template <typename METHOD, typename XDATA> -	LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra); +	LLView* childrenHandleMouseEvent(const METHOD& method, S32 x, S32 y, XDATA extra, bool allow_mouse_block = true);  	template <typename METHOD, typename CHARTYPE>  	LLView* childrenHandleCharEvent(const std::string& desc, const METHOD& method, diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 20fa26915b..36a8b41d8b 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -89,6 +89,7 @@  #include "llweb.h"  #include "llsecondlifeurls.h"  #include "llupdaterservice.h" +#include "llcallfloater.h"  // Linden library includes  #include "llavatarnamecache.h" @@ -112,6 +113,7 @@  #include <boost/foreach.hpp> +  #if LL_WINDOWS  #	include <share.h> // For _SH_DENYWR in initMarkerFile  #else @@ -1183,6 +1185,7 @@ bool LLAppViewer::mainLoop()  	LLVoiceChannel::initClass();  	LLVoiceClient::getInstance()->init(gServicePump); +	LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLCallFloater::sOnCurrentChannelChanged, _1), true);  	LLTimer frameTimer,idleTimer;  	LLTimer debugTime;  	LLViewerJoystick* joystick(LLViewerJoystick::getInstance()); diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp index cc2a189b76..e3217668c5 100644 --- a/indra/newview/llcallfloater.cpp +++ b/indra/newview/llcallfloater.cpp @@ -44,6 +44,7 @@  #include "llparticipantlist.h"  #include "llspeakers.h"  #include "lltextutil.h" +#include "lltransientfloatermgr.h"  #include "llviewercontrol.h"  #include "llviewerdisplayname.h"  #include "llviewerwindow.h" @@ -96,7 +97,7 @@ static void* create_non_avatar_caller(void*)  LLVoiceChannel* LLCallFloater::sCurrentVoiceChannel = NULL;  LLCallFloater::LLCallFloater(const LLSD& key) -: LLFloater(key) +: LLTransientDockableFloater(NULL, false, key)  , mSpeakerManager(NULL)  , mParticipants(NULL)  , mAvatarList(NULL) @@ -112,6 +113,7 @@ LLCallFloater::LLCallFloater(const LLSD& key)  	mFactoryMap["non_avatar_caller"] = LLCallbackMap(create_non_avatar_caller, NULL);  	LLVoiceClient::instance().addObserver(this); +	LLTransientFloaterMgr::getInstance()->addControlView(this);  	// update the agent's name if display name setting change  	LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLCallFloater::updateAgentModeratorState, this)); @@ -134,6 +136,7 @@ LLCallFloater::~LLCallFloater()  	{  		LLVoiceClient::getInstance()->removeObserver(this);  	} +	LLTransientFloaterMgr::getInstance()->removeControlView(this);  }  // virtual @@ -151,10 +154,6 @@ BOOL LLCallFloater::postBuild()  	connectToChannel(LLVoiceChannel::getCurrentVoiceChannel()); -	setIsChrome(true); -	//chrome="true" hides floater caption  -	if (mDragHandle) -		mDragHandle->setTitleVisible(TRUE);  	updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)  	updateSession(); diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 7282f7a8be..00a3f76e56 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -28,7 +28,7 @@  #ifndef LL_LLCALLFLOATER_H  #define LL_LLCALLFLOATER_H -#include "llfloater.h" +#include "lltransientdockablefloater.h"  #include "llvoicechannel.h"  #include "llvoiceclient.h" @@ -52,7 +52,7 @@ class LLSpeakersDelayActionsStorage;   * When the Resident is engaged in any chat except Nearby Chat, the Voice Control Panel   * also provides a 'Leave Call' button to allow the Resident to leave that voice channel.   */ -class LLCallFloater : public LLFloater, LLVoiceClientParticipantObserver +class LLCallFloater : public LLTransientDockableFloater, LLVoiceClientParticipantObserver  {  public: @@ -262,6 +262,9 @@ private:  	 */  	static LLVoiceChannel* sCurrentVoiceChannel; +	/* virtual */ +	LLTransientFloaterMgr::ETransientGroup getGroup() { return LLTransientFloaterMgr::IM; } +  	boost::signals2::connection mVoiceChannelStateChangeConnection;  }; diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp index aa78bc4f29..b33dea4890 100644 --- a/indra/newview/llfloatercamera.cpp +++ b/indra/newview/llfloatercamera.cpp @@ -347,13 +347,12 @@ LLFloaterCamera::LLFloaterCamera(const LLSD& val)  	mPrevMode(CAMERA_CTRL_MODE_PAN)  {  	LLHints::registerHintTarget("view_popup", LLView::getHandle()); +	mCommitCallbackRegistrar.add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2));  }  // virtual  BOOL LLFloaterCamera::postBuild()  { -	setIsChrome(TRUE); -	setTitleVisible(TRUE); // restore title visibility after chrome applying  	updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)  	mRotate = getChild<LLJoystickCameraRotate>(ORBIT); diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp index 4181d1906e..58c76a0b85 100644 --- a/indra/newview/llfloaterhud.cpp +++ b/indra/newview/llfloaterhud.cpp @@ -54,14 +54,6 @@ LLFloaterHUD::LLFloaterHUD(const LLSD& key)  		return;  	} -	// Don't grab the focus as it will impede performing in-world actions -	// while using the HUD -	setIsChrome(TRUE); - -	// Chrome doesn't show the window title by default, but here we -	// want to show it. -	setTitleVisible(true); -	  	// Opaque background since we never get the focus  	setBackgroundOpaque(TRUE);  } diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp index 8713513054..a65e9e911a 100644 --- a/indra/newview/llfloatermap.cpp +++ b/indra/newview/llfloatermap.cpp @@ -105,9 +105,6 @@ BOOL LLFloaterMap::postBuild()  	// Get the drag handle all the way in back  	sendChildToBack(getDragHandle()); -	//setIsChrome(TRUE); -	//getDragHandle()->setTitleVisible(TRUE); -	  	// keep onscreen  	gFloaterView->adjustToFitScreen(this, FALSE); diff --git a/indra/newview/llfloatersounddevices.cpp b/indra/newview/llfloatersounddevices.cpp index 56c0806546..72c077d215 100644 --- a/indra/newview/llfloatersounddevices.cpp +++ b/indra/newview/llfloatersounddevices.cpp @@ -55,9 +55,6 @@ BOOL LLFloaterSoundDevices::postBuild()  {  	LLTransientDockableFloater::postBuild(); -	setIsChrome(TRUE); -	if (mDragHandle) -		mDragHandle->setTitleVisible(TRUE);  	updateTransparency(TT_ACTIVE); // force using active floater transparency (STORM-730)  	LLPanelVoiceDeviceSettings* panel = findChild<LLPanelVoiceDeviceSettings>("device_settings_panel"); diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index 6873cf058a..de305bf3d9 100644 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -91,8 +91,6 @@ mCloseNotificationOnDestroy(true)  		sFont = LLFontGL::getFontSansSerif();  		sFontSmall = LLFontGL::getFontSansSerifSmall();  	} -	// clicking on a button does not steal current focus -	setIsChrome(TRUE);  	// initialize  	setFocusRoot(!mIsTip);  	// get a form for the notification diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 21e682f072..c7c8268eb9 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -355,6 +355,12 @@ BOOL LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp  			LLToolDragAndDrop::ESource src = LLToolDragAndDrop::SOURCE_VIEWER;  			LLUUID srcID;  			LLToolDragAndDrop::getInstance()->beginMultiDrag(types, cargo_ids, src, srcID); + +			// Second, stop the command if it is in progress and requires stopping! +			LLCommandId command_id = LLCommandId(uuid); +			gToolBarView->mToolbarLeft->stopCommandInProgress(command_id); +			gToolBarView->mToolbarRight->stopCommandInProgress(command_id); +			gToolBarView->mToolbarBottom->stopCommandInProgress(command_id);  			// Second, check if the command is present in one of the 3 toolbars  			// If it is, store the command, the toolbar and the rank in the toolbar and diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp index 983108391f..efe9bb8da7 100644 --- a/indra/newview/lltracker.cpp +++ b/indra/newview/lltracker.cpp @@ -53,10 +53,12 @@  #include "llinventorymodel.h"  #include "llinventoryobserver.h"  #include "lllandmarklist.h" +#include "llprogressview.h"  #include "llsky.h"  #include "llui.h"  #include "llviewercamera.h"  #include "llviewerinventory.h" +#include "llviewerwindow.h"  #include "llworld.h"  #include "llworldmapview.h"  #include "llviewercontrol.h" @@ -111,6 +113,8 @@ void LLTracker::drawHUDArrow()  {  	if (!gSavedSettings.getBOOL("RenderTrackerBeacon")) return; +	if (gViewerWindow->getProgressView()->getVisible()) return; +  	static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);  	/* tracking autopilot destination has been disabled  diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml index afe8584a2d..e7f5207271 100644 --- a/indra/newview/skins/default/xui/en/floater_camera.xml +++ b/indra/newview/skins/default/xui/en/floater_camera.xml @@ -14,6 +14,7 @@   save_visibility="true"   single_instance="true"   title="VIEW" + chrome="true"   save_rect="true"   width="228">      <floater.string @@ -166,14 +167,10 @@             <joystick_rotate                follows="top|left"                height="78" -              image_selected="Cam_Rotate_In" -              image_unselected="Cam_Rotate_Out"                layout="topleft"                left="7" -              mouse_opaque="false"                name="cam_rotate_stick"                quadrant="left" -              scale_image="false"                sound_flags="3"                visible="true"                tool_tip="Orbit camera around focus" diff --git a/indra/newview/skins/default/xui/en/floater_hud.xml b/indra/newview/skins/default/xui/en/floater_hud.xml index 99a6a95828..e2d860881a 100644 --- a/indra/newview/skins/default/xui/en/floater_hud.xml +++ b/indra/newview/skins/default/xui/en/floater_hud.xml @@ -8,6 +8,7 @@   help_topic="floater_hud"   save_rect="true"   save_visibility="true" + chrome="true"   title="TUTORIAL"   width="362">      <web_browser diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml index 58d67c8221..31972d4122 100644 --- a/indra/newview/skins/default/xui/en/floater_map.xml +++ b/indra/newview/skins/default/xui/en/floater_map.xml @@ -3,6 +3,7 @@   open_positioning="cascading"   can_minimize="true"    can_resize="true" + chrome="true"   follows="top|right"   height="200"   layout="topleft" diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml index b7370580af..e96039a3e1 100644 --- a/indra/newview/skins/default/xui/en/floater_moveview.xml +++ b/indra/newview/skins/default/xui/en/floater_moveview.xml @@ -14,7 +14,8 @@   help_topic="move_floater"   save_rect="true"   save_visibility="true" - save_dock_state="true" + single_instance="true" + chrome="true"   title="MOVE"   width="133">      <string diff --git a/indra/newview/skins/default/xui/en/floater_sound_devices.xml b/indra/newview/skins/default/xui/en/floater_sound_devices.xml index 3dbe4adf28..dec0e9b6c6 100644 --- a/indra/newview/skins/default/xui/en/floater_sound_devices.xml +++ b/indra/newview/skins/default/xui/en/floater_sound_devices.xml @@ -6,6 +6,7 @@   can_minimize="true"   can_resize="false"   can_close="false" + chrome="true"   save_dock_state="true"   save_visibility="true"   save_rect="true" diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml index 3f5768bc0b..14a722e3be 100644 --- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml +++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml @@ -4,6 +4,7 @@   can_resize="true"   can_minimize="true"   can_close="true" + chrome="true"   height="205"   layout="topleft"   min_height="124" @@ -18,19 +19,19 @@   width="282">      <string       name="title_nearby"> -        Nearby voice +        VOICE SETTINGS      </string>      <string       name="title_group"> -        Group call with [GROUP] +        GROUP CALL WITH [GROUP]      </string>      <string       name="title_adhoc"> -        Conference call +        CONFERENCE CALL      </string>      <string       name="title_peer_2_peer"> -        Call with [NAME] +        CALL WITH [NAME]      </string>      <string       name="no_one_near"> diff --git a/indra/newview/skins/default/xui/en/menu_bottomtray.xml b/indra/newview/skins/default/xui/en/menu_bottomtray.xml deleted file mode 100644 index 1a102c21bb..0000000000 --- a/indra/newview/skins/default/xui/en/menu_bottomtray.xml +++ /dev/null @@ -1,163 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<menu - height="201" - layout="topleft" - left="100" - mouse_opaque="false" - name="hide_camera_move_controls_menu" - top="624" - visible="false" - width="128"> -    <menu_item_check -         label="Speak Button" -         layout="topleft" -         name="EnableVoiceChat"> -           <menu_item_check.on_click -             function="ToggleControl" -             parameter="EnableVoiceChat" />  -             <menu_item_check.on_check -             function="CheckControl" -             parameter="EnableVoiceChat" /> -    </menu_item_check> -    <menu_item_check -         label="Gesture button" -         layout="topleft" -         name="ShowGestureButton"> -           <menu_item_check.on_click -             function="ToggleControl" -             parameter="ShowGestureButton" />  -             <menu_item_check.on_check -             function="CheckControl" -             parameter="ShowGestureButton" /> -    </menu_item_check> -    <menu_item_check -         label="Move button" -         layout="topleft" -         name="ShowMoveButton"> -           <menu_item_check.on_click -             function="ToggleControl" -             parameter="ShowMoveButton" /> -             <menu_item_check.on_check -             function="CheckControl" -             parameter="ShowMoveButton" /> -    </menu_item_check> -    <menu_item_check -         label="View button" -         layout="topleft" -         name="ShowCameraButton"> -           <menu_item_check.on_click -             function="ToggleControl" -             parameter="ShowCameraButton" /> -             <menu_item_check.on_check -             function="CheckControl" -             parameter="ShowCameraButton" /> -    </menu_item_check>         -    <menu_item_check -         label="Snapshot button" -         layout="topleft" -         name="ShowSnapshotButton"> -           <menu_item_check.on_click -             function="ToggleControl" -             parameter="ShowSnapshotButton" /> -             <menu_item_check.on_check -             function="CheckControl" -             parameter="ShowSnapshotButton" /> -    </menu_item_check>         -    <menu_item_check -     label="Build button" -     layout="topleft" -     name="ShowBuildButton"> -        <menu_item_check.on_click -         function="ToggleControl" -         parameter="ShowBuildButton" /> -        <menu_item_check.on_check -         function="CheckControl" -         parameter="ShowBuildButton" /> -    </menu_item_check> -    <menu_item_check -     label="Search button" -     layout="topleft" -     name="ShowSearchButton"> -        <menu_item_check.on_click -         function="ToggleControl" -         parameter="ShowSearchButton" /> -        <menu_item_check.on_check -         function="CheckControl" -         parameter="ShowSearchButton" /> -    </menu_item_check> -    <menu_item_check -     label="Map button" -     layout="topleft" -     name="ShowWorldMapButton"> -        <menu_item_check.on_click -         function="ToggleControl" -         parameter="ShowWorldMapButton" /> -        <menu_item_check.on_check -         function="CheckControl" -         parameter="ShowWorldMapButton" /> -    </menu_item_check> -    <menu_item_check -     label="Mini-map button" -     layout="topleft" -     name="ShowMiniMapButton"> -        <menu_item_check.on_click -         function="ToggleControl" -         parameter="ShowMiniMapButton" /> -        <menu_item_check.on_check -         function="CheckControl" -         parameter="ShowMiniMapButton" /> -    </menu_item_check> -    <menu_item_separator -     name="Separator" /> -    <menu_item_call -     label="Cut" -     name="NearbyChatBar_Cut"> -        <menu_item_call.on_click -         function="NearbyChatBar.Action" -         parameter="cut" /> -        <menu_item_call.on_enable -         function="NearbyChatBar.EnableMenuItem" -         parameter="can_cut" /> -    </menu_item_call> -    <menu_item_call -     label="Copy" -     name="NearbyChatBar_Copy"> -        <menu_item_call.on_click -         function="NearbyChatBar.Action" -         parameter="copy" /> -        <menu_item_call.on_enable -         function="NearbyChatBar.EnableMenuItem" -         parameter="can_copy" /> -    </menu_item_call> -    <menu_item_call -     label="Paste" -     name="NearbyChatBar_Paste"> -        <menu_item_call.on_click -         function="NearbyChatBar.Action" -         parameter="paste" /> -        <menu_item_call.on_enable -         function="NearbyChatBar.EnableMenuItem" -         parameter="can_paste" /> -    </menu_item_call> -    <menu_item_call -     label="Delete" -     name="NearbyChatBar_Delete"> -        <menu_item_call.on_click -         function="NearbyChatBar.Action" -         parameter="delete" /> -        <menu_item_call.on_enable -         function="NearbyChatBar.EnableMenuItem" -         parameter="can_delete" /> -    </menu_item_call> -    <menu_item_call -     label="Select All" -     name="NearbyChatBar_Select_All"> -        <menu_item_call.on_click -         function="NearbyChatBar.Action" -         parameter="select_all" /> -        <menu_item_call.on_enable -         function="NearbyChatBar.EnableMenuItem" -         parameter="can_select_all" /> -    </menu_item_call> - -</menu> diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index f510b3c5ba..7b64c1d066 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -5423,21 +5423,23 @@ Your calling card was declined.    </notification>    <notification -   icon="notifytip.tga" -   name="TeleportToLandmark" -   type="notifytip"> -You can teleport to locations like '[NAME]' by opening the Places panel on the right side of your screen, and then select the Landmarks tab. -Click on any landmark to select it, then click 'Teleport' at the bottom of the panel. -(You can also double-click on the landmark, or right-click it and choose 'Teleport'.) + icon="notifytip.tga" + name="TeleportToLandmark" + type="notifytip"> +    To teleport to locations like '[NAME]', click on the "Places" button, +    then select the Landmarks tab in the window that opens. Click on any +    landmark to select it, then click 'Teleport' at the bottom of the window. +    (You can also double-click on the landmark, or right-click it and +    choose 'Teleport'.)    </notification>    <notification     icon="notifytip.tga"     name="TeleportToPerson"     type="notifytip"> -You can contact Residents like '[NAME]' by opening the People panel on the right side of your screen. -Select the Resident from the list, then click 'IM' at the bottom of the panel. -(You can also double-click on their name in the list, or right-click and choose 'IM'). +    To contact Residents like '[NAME]', click on the "People" button , select a Resident from the window that opens, then click 'IM' at the +    bottom of the window. +    (You can also double-click on their name in the list, or right-click and choose 'IM').    </notification>    <notification diff --git a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml index 355a76e05f..41d1036a4d 100644 --- a/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_chiclet_bar.xml @@ -42,7 +42,7 @@               top="7"               width="189">          <button -                 auto_resize="true" +                 auto_resize="false"                   follows="right"                   height="29"                   image_hover_selected="SegmentedBtn_Left_Over" @@ -57,9 +57,9 @@                   tab_stop="false"                   top="-28"                   visible="false" -                 width="7" /> +                 width="12" />          <button -                 auto_resize="true" +                 auto_resize="false"                   follows="right"                   height="29"                   image_hover_selected="SegmentedBtn_Right_Over" @@ -74,7 +74,7 @@                   tab_stop="false"                   top="-28"                   visible="false" -                 width="7" /> +                 width="12" />        </chiclet_panel>      </layout_panel>      <layout_panel auto_resize="false" @@ -110,7 +110,7 @@ image_pressed           "Lit" - there are new messages  image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well is open               -->          <button -                 auto_resize="true" +                 auto_resize="false"                   follows="right"                   halign="center"                   height="23" @@ -151,7 +151,7 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well               top="5"               width="35">          <button -                 auto_resize="true" +                 auto_resize="false"                   bottom_pad="3"                   follows="right"                   halign="center" diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml index 59ead84127..f6f62ac54e 100644 --- a/indra/newview/skins/default/xui/en/panel_notification.xml +++ b/indra/newview/skins/default/xui/en/panel_notification.xml @@ -9,6 +9,8 @@    layout="topleft"    left="0"    name="notification_panel" +  chrome="true" +  show_title="false"    top="0"    	height="140"    translate="false" diff --git a/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml new file mode 100644 index 0000000000..a190da3909 --- /dev/null +++ b/indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<joystick_rotate +   image_selected="Cam_Rotate_In" +   image_unselected="Cam_Rotate_Out" +   scale_image="false" +   mouse_opaque="false" +   held_down_delay.seconds="0"/> | 
