summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llui/llfloater.cpp23
-rw-r--r--indra/llui/llfloater.h4
-rw-r--r--indra/llui/llfloaterreg.cpp8
-rw-r--r--indra/llui/lllayoutstack.cpp17
-rw-r--r--indra/llui/lllayoutstack.h13
-rw-r--r--indra/llui/lltabcontainer.cpp20
-rw-r--r--indra/llui/lltoolbar.cpp45
-rw-r--r--indra/llui/lltoolbar.h1
-rw-r--r--indra/llui/llview.cpp6
-rw-r--r--indra/llui/llview.h2
-rw-r--r--indra/newview/llappviewer.cpp3
-rw-r--r--indra/newview/llcallfloater.cpp9
-rw-r--r--indra/newview/llcallfloater.h7
-rw-r--r--indra/newview/llfloatercamera.cpp3
-rw-r--r--indra/newview/llfloaterhud.cpp8
-rw-r--r--indra/newview/llfloatermap.cpp3
-rw-r--r--indra/newview/llfloatersounddevices.cpp3
-rw-r--r--indra/newview/lltoastnotifypanel.cpp2
-rw-r--r--indra/newview/lltoolbarview.cpp6
-rw-r--r--indra/newview/lltracker.cpp4
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml5
-rw-r--r--indra/newview/skins/default/xui/en/floater_hud.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_moveview.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_sound_devices.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml9
-rw-r--r--indra/newview/skins/default/xui/en/menu_bottomtray.xml163
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_chiclet_bar.xml12
-rw-r--r--indra/newview/skins/default/xui/en/panel_notification.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/joystick_rotate.xml7
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 &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 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"/>