diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index d1d840729d6538ed84da756814d285d8a6715663..3085921e046dcf7beeb9838a19a2b03ab77a8da6 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 8beb11507e115750c17d06320a60a25f49e802e4..f610b04e3527ee0d6ed59c2b8a0559139e164351 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -128,7 +128,8 @@ class LLFloater : public LLPanel
 								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 @@ class LLFloater : public LLPanel
 	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 0edfc8da2d4aa9630cad4518e8be2e80f02ce122..df3cff9968f19d2642c30c04835fdfd2071a88ef 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 4991c4afa641a3139f3e289534d70a08a8c12a99..0e7060e22cfc887157bdfceb40ceb5c38b1a4d40 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 5d79505fc36b5eea4b1ce9ec94599cb7791e5438..ede6149a800da8c15b6de93079cb2845a767d0e5 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -161,18 +161,7 @@ friend class LLUICtrlFactory;
 		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 9c6a76822c2e12e1379e3b0bd54acdbafd888798..ad1f3c504da89f8271c89c215ff9b3d8f415606f 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 629c7d9bc740a0120457cb6123ec9a5c76b926a0..c559a2bf1d88f532367f7a05738d4c5c8a79d661 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 616710ea70f4920e3ca9d50b93e1f6347da88a1f..ad42d1fa353db35611ebd26376259d03f2d9b15c 100644
--- a/indra/llui/lltoolbar.h
+++ b/indra/llui/lltoolbar.h
@@ -185,6 +185,7 @@ class LLToolBar
 	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 fdb84f1ec57f1b7890d8ed55c8dd69bbe1fd1188..3fd7e48428915cc6b02f39226b0f7012673369ce 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 6d1dda90affb4f73e1fe1f1624a2d765d14bb4cb..08828e55e6a0ae216be8328b99f0453af0cd6ae9 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -565,7 +565,7 @@ class LLView : public LLMouseHandler, public LLMortician, public LLFocusableElem
 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 20fa26915b3ec3c240ef2cf15fd58631b956033d..36a8b41d8bd83f5cc100b206fcf6033ad6ef01c3 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 cc2a189b7628954b21b4084c1ef5f2c4ab7d775d..e3217668c540eda7e0895051f03f533cdb5e8bae 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 7282f7a8be98c0eb25500b80ba63d9830b4bfd28..00a3f76e5679d53ee2908cff0ab9776ebe04e289 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 @@ class LLCallFloater : public LLFloater, LLVoiceClientParticipantObserver
 	 */
 	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 aa78bc4f2921375c5c397308f2e42d884fe9d93f..b33dea4890fabbe6bfb219b15781f341539c3944 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 4181d1906e55a652d6d689fbf51a949a139f0622..58c76a0b85efe08995e93a231de8c706bc98f549 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 871351305425c1ce1a6dfeb078a7e977627ea39b..a65e9e911a9fb91c6624361ff377ffbace99bbdc 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 56c08065467922891df3c93139c4d2e431085dc2..72c077d2156b5b323046c4dcc4c6b16845cbfec2 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 6873cf058aed7179d46003050fe7fcbc4f111e1d..de305bf3d9d3de96586d68e4c8fb7845509577c4 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 21e682f0728e528c179830c1cbd09aae5b28b9b5..c7c8268eb94bce7e756d82f3343234c23940eb00 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 983108391f8fa904156fbd018a8e08576be79d3c..efe9bb8da7cdeb27f0ea6c1c16959ee1f77a358c 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 afe8584a2d3777e99873473ad1ea0a7ce571f33b..e7f5207271752fc7800f9eaf205ce03bcdecdb03 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 99a6a95828edad946f52ddd0c23ecd604e407b19..e2d860881a25be8d9cde567b149b13e0247e4e56 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 58d67c82211e10baaed9629683968eef8dc9a8fa..31972d412247fa32cb77e7c012966519decda46c 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 b7370580af49bd7feee49fe0da5ab000d5bd19a3..e96039a3e153fa16d7f3db583011a08be5421308 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 3dbe4adf28af3d827e2b3f79c7faeec218b90095..dec0e9b6c620e3f44233ff24d9c04314684f41f3 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 3f5768bc0b59c3b335eaca9347ac6c61c54c8b27..14a722e3be85a3ddb24e6fd9af4621a24cfe4a6c 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 1a102c21bbbb682f1369d7298b9fdc9d6b8b3382..0000000000000000000000000000000000000000
--- 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 f510b3c5bac9015866f130ffc0fbbf3ba8d98a09..7b64c1d066c62df76f6b9e1d6bb3e27fc8df9136 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 &apos;[NAME]&apos; 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 &apos;Teleport&apos; at the bottom of the panel.
-(You can also double-click on the landmark, or right-click it and choose &apos;Teleport&apos;.)
+ icon="notifytip.tga"
+ name="TeleportToLandmark"
+ type="notifytip">
+    To teleport to locations like &apos;[NAME]&apos;, click on the &quot;Places&quot; button,
+    then select the Landmarks tab in the window that opens. Click on any
+    landmark to select it, then click &apos;Teleport&apos; at the bottom of the window.
+    (You can also double-click on the landmark, or right-click it and
+    choose &apos;Teleport&apos;.)
   </notification>
 
   <notification
    icon="notifytip.tga"
    name="TeleportToPerson"
    type="notifytip">
-You can contact Residents like &apos;[NAME]&apos; by opening the People panel on the right side of your screen.
-Select the Resident from the list, then click &apos;IM&apos; at the bottom of the panel.
-(You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
+    To contact Residents like &apos;[NAME]&apos;, click on the &quot;People&quot; button , select a Resident from the window that opens, then click &apos;IM&apos; at the
+    bottom of the window.
+    (You can also double-click on their name in the list, or right-click and choose &apos;IM&apos;).
   </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 355a76e05f9ec40589d805138918e332b1268797..41d1036a4d4859791b2f622b273efa1a0f2449cf 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 59ead84127a7273cd4227a76bc1cdd9001713e05..f6f62ac54eb71ee56051b27cb0be8ab0a00a81ed 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 0000000000000000000000000000000000000000..a190da3909959deb8f77587a2a3654637c85724e
--- /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"/>