diff options
26 files changed, 173 insertions, 45 deletions
| diff --git a/indra/cmake/VisualLeakDetector.cmake b/indra/cmake/VisualLeakDetector.cmake new file mode 100644 index 0000000000..d3ba554e46 --- /dev/null +++ b/indra/cmake/VisualLeakDetector.cmake @@ -0,0 +1,15 @@ +# -*- cmake -*- + +if (VIEWER) + +  set(INCLUDE_VLD_CMAKE OFF CACHE BOOL "Build the Windows viewer with Visual Leak Detector turned on or off") + +  if (INCLUDE_VLD_CMAKE) + +    if (WINDOWS) +      add_definitions(-DINCLUDE_VLD=1) +    endif (WINDOWS) + +  endif (INCLUDE_VLD_CMAKE) + +endif (VIEWER) diff --git a/indra/llmath/llcoord.h b/indra/llmath/llcoord.h index 1f617e649e..756e23dbdf 100644 --- a/indra/llmath/llcoord.h +++ b/indra/llmath/llcoord.h @@ -45,7 +45,7 @@ public:  	LLCoord():	mX(0), mY(0)  	{} -	LLCoord(S32 x, S32 y): mX(x), mY(y) +	LLCoord(typename COORD_FRAME::value_t x, typename COORD_FRAME::value_t y): mX(x), mY(y)  	{}  	LLCoord(const LLCoordCommon& other) @@ -58,7 +58,7 @@ public:  		return COORD_FRAME::convertToCommon();  	} -	void set(S32 x, S32 y) { mX = x; mY = y;} +	void set(typename COORD_FRAME::value_t x, typename COORD_FRAME::value_t y) { mX = x; mY = y;}  	bool operator==(const self_t& other) const { return mX == other.mX && mY == other.mY; }  	bool operator!=(const self_t& other) const { return !(*this == other); } diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index ebc3203f14..3a3e4a90dd 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -886,7 +886,7 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO  	DWORD	current_refresh;  	DWORD	dw_ex_style;  	DWORD	dw_style; -	RECT	window_rect; +	RECT	window_rect = {0, 0, 0, 0};  	S32 width = size.mX;  	S32 height = size.mY;  	BOOL auto_show = FALSE; @@ -985,9 +985,6 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO  			window_rect.bottom = (long) height;  			dw_ex_style = WS_EX_APPWINDOW;  			dw_style = WS_POPUP; - -			// Move window borders out not to cover window contents -			AdjustWindowRectEx(&window_rect, dw_style, FALSE, dw_ex_style);  		}  		// If it failed, we don't want to run fullscreen  		else @@ -1014,6 +1011,10 @@ BOOL LLWindowWin32::switchContext(BOOL fullscreen, const LLCoordScreen &size, BO  		dw_style = WS_OVERLAPPEDWINDOW;  	} +	// Move window borders out not to cover window contents. +	// This converts client rect to window rect, i.e. expands it by the window border size. +	AdjustWindowRectEx(&window_rect, dw_style, FALSE, dw_ex_style); +  	// don't post quit messages when destroying old windows  	mPostQuit = FALSE; diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 69bf1f15a1..66361c8fbf 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -41,6 +41,7 @@ include(UnixInstall)  include(LLKDU)  include(ViewerMiscLibs)  include(LLLogin) +include(VisualLeakDetector)  include(GLOD)  include(CMakeCopyIfDifferent) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index ee8c15752b..caeaf71484 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9619,18 +9619,29 @@        <key>Value</key>        <integer>1</integer>      </map> -    <key>ShowConsoleWindow</key> -    <map> -      <key>Comment</key> -      <string>Show log in separate OS window</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>0</integer> -    </map> -    <key>NavBarShowCoordinates</key> +  <key>ShowConsoleWindow</key> +  <map> +    <key>Comment</key> +    <string>Show log in separate OS window</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>Boolean</string> +    <key>Value</key> +    <integer>0</integer> +  </map> +  <key>EnableVisualLeakDetector</key> +  <map> +    <key>Comment</key> +    <string>EnableVisualLeakDetector</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>Boolean</string> +    <key>Value</key> +    <integer>0</integer> +  </map> +  <key>NavBarShowCoordinates</key>      <map>        <key>Comment</key>        <string>Show coordinates in navigation bar</string> diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp index 6931b55c4c..bad60a9757 100644 --- a/indra/newview/llappviewerwin32.cpp +++ b/indra/newview/llappviewerwin32.cpp @@ -26,6 +26,10 @@  #include "llviewerprecompiledheaders.h" +#ifdef INCLUDE_VLD +#include "vld.h" +#endif +  #include "llappviewerwin32.h"  #include "llmemtype.h" @@ -105,6 +109,14 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,                       LPSTR     lpCmdLine,                       int       nCmdShow)  { +#ifdef INCLUDE_VLD +	// only works for debug builds (hard coded into vld.h) +	#ifdef _DEBUG +		// start with Visual Leak Detector turned off +		VLDGlobalDisable(); +	#endif // _DEBUG +#endif // INCLUDE_VLD +  	LLMemType mt1(LLMemType::MTYPE_STARTUP);  	const S32 MAX_HEAPS = 255; diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 9a7cdcfa21..f618af9536 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -738,6 +738,11 @@ void LLAvatarActions::shareWithAvatars()  	LLFloaterAvatarPicker* picker =  		LLFloaterAvatarPicker::show(boost::bind(give_inventory, _1, _2), TRUE, FALSE); +	if (!picker) +	{ +		return; +	} +  	picker->setOkBtnEnableCb(boost::bind(is_give_inventory_acceptable));  	picker->openFriendsTab();  	LLNotificationsUtil::add("ShareNotification"); diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp index a7388d21a3..bca4b5e447 100644 --- a/indra/newview/llfloaterbuycontents.cpp +++ b/indra/newview/llfloaterbuycontents.cpp @@ -210,7 +210,9 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,  		LLSD row;  		BOOL item_is_multi = FALSE; -		if ( inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED ) +		if ((inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_LANDMARK_VISITED +			|| inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_OBJECT_HAS_MULTIPLE_ITEMS) +			&& !(inv_item->getFlags() & LLInventoryItemFlags::II_FLAGS_WEARABLES_MASK))  		{  			item_is_multi = TRUE;  		} diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp index a34e0353ec..fb905eae11 100644 --- a/indra/newview/llfloatergodtools.cpp +++ b/indra/newview/llfloatergodtools.cpp @@ -1123,8 +1123,12 @@ bool LLPanelObjectTools::callbackSimWideDeletes( const LLSD& notification, const  void LLPanelObjectTools::onClickSet()  { +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLPanelObjectTools::callbackAvatarID, this, _1,_2));  	// grandparent is a floater, which can have a dependent -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelObjectTools::callbackAvatarID, this, _1,_2))); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLPanelObjectTools::onClickSetBySelection(void* data) diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 95da8ff948..ee18c95b34 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -2739,7 +2739,12 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)  void LLPanelLandAccess::onClickAddAccess()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelLandAccess::callbackAvatarCBAccess, this, _1)) ); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +		boost::bind(&LLPanelLandAccess::callbackAvatarCBAccess, this, _1)); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLPanelLandAccess::callbackAvatarCBAccess(const uuid_vec_t& ids) @@ -2783,7 +2788,12 @@ void LLPanelLandAccess::onClickRemoveAccess(void* data)  // static  void LLPanelLandAccess::onClickAddBanned()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLPanelLandAccess::callbackAvatarCBBanned, this, _1))); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +		boost::bind(&LLPanelLandAccess::callbackAvatarCBBanned, this, _1)); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  // static diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp index 676059779c..1f746ed31a 100644 --- a/indra/newview/llfloaterregioninfo.cpp +++ b/indra/newview/llfloaterregioninfo.cpp @@ -650,7 +650,10 @@ void LLPanelRegionGeneralInfo::onClickKick()  	// in order to set up floater dependency  	LLFloater* parent_floater = gFloaterView->getParentFloater(this);  	LLFloater* child_floater = LLFloaterAvatarPicker::show(boost::bind(&LLPanelRegionGeneralInfo::onKickCommit, this, _1), FALSE, TRUE); -	parent_floater->addDependentFloater(child_floater); +	if (child_floater) +	{ +		parent_floater->addDependentFloater(child_floater); +	}  }  void LLPanelRegionGeneralInfo::onKickCommit(const uuid_vec_t& ids) @@ -1470,7 +1473,10 @@ void LLPanelEstateInfo::onClickKickUser()  	// in order to set up floater dependency  	LLFloater* parent_floater = gFloaterView->getParentFloater(this);  	LLFloater* child_floater = LLFloaterAvatarPicker::show(boost::bind(&LLPanelEstateInfo::onKickUserCommit, this, _1), FALSE, TRUE); -	parent_floater->addDependentFloater(child_floater); +	if (child_floater) +	{ +		parent_floater->addDependentFloater(child_floater); +	}  }  void LLPanelEstateInfo::onKickUserCommit(const uuid_vec_t& ids) diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index c08848b1ea..3ec1e372eb 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -285,7 +285,11 @@ void LLFloaterReporter::getObjectInfo(const LLUUID& object_id)  void LLFloaterReporter::onClickSelectAbuser()  { -	gFloaterView->getParentFloater(this)->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLFloaterReporter::callbackAvatarID, this, _1, _2), FALSE, TRUE )); +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLFloaterReporter::callbackAvatarID, this, _1, _2), FALSE, TRUE ); +	if (picker) +	{ +		gFloaterView->getParentFloater(this)->addDependentFloater(picker); +	}  }  void LLFloaterReporter::callbackAvatarID(const uuid_vec_t& ids, const std::vector<LLAvatarName> names) diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp index 3434841d09..64c0dfa023 100644 --- a/indra/newview/llfloatersellland.cpp +++ b/indra/newview/llfloatersellland.cpp @@ -392,8 +392,12 @@ void LLFloaterSellLandUI::onChangeValue(LLUICtrl *ctrl, void *userdata)  void LLFloaterSellLandUI::doSelectAgent()  { +	LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show(boost::bind(&LLFloaterSellLandUI::callbackAvatarPick, this, _1, _2), FALSE, TRUE);  	// grandparent is a floater, in order to set up dependency -	addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(&LLFloaterSellLandUI::callbackAvatarPick, this, _1, _2), FALSE, TRUE)); +	if (picker) +	{ +		addDependentFloater(picker); +	}  }  void LLFloaterSellLandUI::callbackAvatarPick(const uuid_vec_t& ids, const std::vector<LLAvatarName> names) diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp index ca48e8561b..7a15d93181 100644 --- a/indra/newview/llpanelgroupinvite.cpp +++ b/indra/newview/llpanelgroupinvite.cpp @@ -289,12 +289,12 @@ void LLPanelGroupInvite::impl::callbackClickAdd(void* userdata)  		//Soon the avatar picker will be embedded into this panel  		//instead of being it's own separate floater.  But that is next week.  		//This will do for now. -jwolk May 10, 2006 -		LLFloater* parentp; - -		parentp = gFloaterView->getParentFloater(panelp); -		parentp->addDependentFloater(LLFloaterAvatarPicker::show(boost::bind(impl::callbackAddUsers, _1, -																panelp->mImplementation), -																 TRUE)); +		LLFloaterAvatarPicker* picker = LLFloaterAvatarPicker::show( +			boost::bind(impl::callbackAddUsers, _1, panelp->mImplementation), TRUE); +		if (picker) +		{ +			gFloaterView->getParentFloater(panelp)->addDependentFloater(picker); +		}  	}  } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 12aed8f448..37cf916423 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -25,6 +25,11 @@   */  #include "llviewerprecompiledheaders.h" + +#ifdef INCLUDE_VLD +#include "vld.h" +#endif +  #include "llviewermenu.h"   // linden library includes @@ -214,7 +219,7 @@ void near_sit_down_point(BOOL success, void *);  void velocity_interpolate( void* ); - +void handle_visual_leak_detector_toggle(void*);  void handle_rebake_textures(void*);  BOOL check_admin_override(void*);  void handle_admin_override_toggle(void*); @@ -2018,6 +2023,15 @@ class LLAdvancedToggleViewAdminOptions : public view_listener_t  	}  }; +class LLAdvancedToggleVisualLeakDetector : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		handle_visual_leak_detector_toggle(NULL); +		return true; +	} +}; +  class LLAdvancedCheckViewAdminOptions : public view_listener_t  {  	bool handleEvent(const LLSD& userdata) @@ -3444,6 +3458,35 @@ void handle_admin_override_toggle(void*)  	show_debug_menus();  } +void handle_visual_leak_detector_toggle(void*) +{ +	static bool vld_enabled = false; + +	if ( vld_enabled ) +	{ +#ifdef INCLUDE_VLD +		// only works for debug builds (hard coded into vld.h) +#ifdef _DEBUG +		// start with Visual Leak Detector turned off +		VLDDisable(); +#endif // _DEBUG +#endif // INCLUDE_VLD +		vld_enabled = false; +	} +	else +	{ +#ifdef INCLUDE_VLD +		// only works for debug builds (hard coded into vld.h) +	#ifdef _DEBUG +		// start with Visual Leak Detector turned off +		VLDEnable(); +	#endif // _DEBUG +#endif // INCLUDE_VLD + +		vld_enabled = true; +	}; +} +  void handle_god_mode(void*)  {  	gAgent.requestEnterGodMode(); @@ -8237,6 +8280,8 @@ void initialize_menus()  	view_listener_t::addMenu(new LLAdvancedEnableViewAdminOptions(), "Advanced.EnableViewAdminOptions");  	view_listener_t::addMenu(new LLAdvancedToggleViewAdminOptions(), "Advanced.ToggleViewAdminOptions");  	view_listener_t::addMenu(new LLAdvancedCheckViewAdminOptions(), "Advanced.CheckViewAdminOptions"); +	view_listener_t::addMenu(new LLAdvancedToggleVisualLeakDetector(), "Advanced.ToggleVisualLeakDetector"); +  	view_listener_t::addMenu(new LLAdvancedRequestAdminStatus(), "Advanced.RequestAdminStatus");  	view_listener_t::addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus"); diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index 2493d60df6..14ace0ac3a 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		[AMT] L$  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-415" name="balance_bg" width="205">  		<text name="balance" tool_tip="Klicken, um L$-Guthaben zu aktualisieren" value="20 L$"/>  		<button label="L$ kaufen" name="buyL" tool_tip="Hier klicken, um mehr L$ zu kaufen"/>  		<button label="Einkaufen" name="goShop" tool_tip="Second Life-Marktplatz öffnen" width="85"/> diff --git a/indra/newview/skins/default/xui/en/floater_avatar.xml b/indra/newview/skins/default/xui/en/floater_avatar.xml index 82c3403008..defb8e2d1f 100644 --- a/indra/newview/skins/default/xui/en/floater_avatar.xml +++ b/indra/newview/skins/default/xui/en/floater_avatar.xml @@ -7,7 +7,7 @@   can_close="true"   can_resize="true"   min_height="230" - min_width="450" + min_width="515"   height="230"   layout="topleft"   name="Avatar" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index cd8550b00d..6443e432fe 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3261,7 +3261,15 @@              <menu_item_call.on_click               function="Advanced.CompressImage" />          </menu_item_call> -        <menu_item_check + +      <menu_item_call +         label="Enable Visual Leak Detector" +         name="Enable Visual Leak Detector"> +        <menu_item_call.on_click +           function="Advanced.ToggleVisualLeakDetector" /> +        </menu_item_call> +       +      <menu_item_check           label="Output Debug Minidump"           name="Output Debug Minidump">              <menu_item_check.on_check diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 22c1139cdb..3aa34439f1 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -35,8 +35,8 @@      </panel.string>    <panel      height="18" -    left="-370" -    width="160" +    left="-395" +    width="185"      top="1"      follows="right|top"       name="balance_bg"> diff --git a/indra/newview/skins/default/xui/es/panel_status_bar.xml b/indra/newview/skins/default/xui/es/panel_status_bar.xml index 79b2c32b23..7eead3bc18 100644 --- a/indra/newview/skins/default/xui/es/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		[AMT] L$  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-410" name="balance_bg" width="200">  		<text name="balance" tool_tip="Haz clic para actualizar tu saldo en L$" value="20 L$"/>  		<button label="Comprar L$" name="buyL" tool_tip="Pulsa para comprar más L$"/>  		<button label="Comprar" name="goShop" tool_tip="Abrir el mercado de Second Life" width="80"/> diff --git a/indra/newview/skins/default/xui/fr/panel_status_bar.xml b/indra/newview/skins/default/xui/fr/panel_status_bar.xml index c0d59a3182..ba36a7d299 100644 --- a/indra/newview/skins/default/xui/fr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/fr/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		[AMT] L$  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-405" name="balance_bg" width="195">  		<text name="balance" tool_tip="Cliquer sur ce bouton pour actualiser votre solde en L$." value="20 L$"/>  		<button label="Acheter L$" name="buyL" tool_tip="Cliquer pour acheter plus de L$."/>  		<button label="Achats" name="goShop" tool_tip="Ouvrir la Place du marché Second Life." width="75"/> diff --git a/indra/newview/skins/default/xui/it/panel_status_bar.xml b/indra/newview/skins/default/xui/it/panel_status_bar.xml index 4abc90113f..0aaf89d8c8 100644 --- a/indra/newview/skins/default/xui/it/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/it/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		L$ [AMT]  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-405" name="balance_bg" width="195">  		<text name="balance" tool_tip="Clicca per aggiornare il tuo saldo in L$" value="L$ 20"/>  		<button label="Acquista L$" name="buyL" tool_tip="Clicca per acquistare più L$"/>  		<button label="Acquisti" name="goShop" tool_tip="Apri Mercato Second Life" width="75"/> diff --git a/indra/newview/skins/default/xui/ja/panel_status_bar.xml b/indra/newview/skins/default/xui/ja/panel_status_bar.xml index 4fb876f690..f09643d562 100644 --- a/indra/newview/skins/default/xui/ja/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ja/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		L$ [AMT]  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-370" name="balance_bg" width="160">  		<text name="balance" tool_tip="クリックして L$ 残高を更新" value="L$20"/>  		<button label="L$ の購入" name="buyL" tool_tip="クリックして L$ を購入します"/>  		<button label="店" name="goShop" tool_tip="Second Life マーケットプレイスを開く"  width="40"/> diff --git a/indra/newview/skins/default/xui/pt/panel_status_bar.xml b/indra/newview/skins/default/xui/pt/panel_status_bar.xml index 22853f0643..cb9a6eb757 100644 --- a/indra/newview/skins/default/xui/pt/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/pt/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		L$ [AMT]  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-410" name="balance_bg" width="200">  		<text name="balance" tool_tip="Atualizar saldo de L$" value="L$20"/>  		<button label="Comprar L$" name="buyL" tool_tip="Comprar mais L$"/>  		<button label="Comprar" name="goShop" tool_tip="Abrir Mercado do Second Life" width="80"/> diff --git a/indra/newview/skins/default/xui/ru/panel_status_bar.xml b/indra/newview/skins/default/xui/ru/panel_status_bar.xml index babe5811ac..9c84ff1fd8 100644 --- a/indra/newview/skins/default/xui/ru/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/ru/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		L$ [AMT]  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-450" name="balance_bg" width="240">  		<text name="balance" tool_tip="Щелкните для обновления вашего баланса L$" value="L$20"/>  		<button label="Купить L$" name="buyL" tool_tip="Щелкните для покупки L$"/>  		<button label="Торговый центр" name="goShop" tool_tip="Открыть торговый центр Second Life" width="121"/> diff --git a/indra/newview/skins/default/xui/tr/panel_status_bar.xml b/indra/newview/skins/default/xui/tr/panel_status_bar.xml index 81c304a5d8..178cbda4a2 100644 --- a/indra/newview/skins/default/xui/tr/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/tr/panel_status_bar.xml @@ -15,7 +15,7 @@  	<panel.string name="buycurrencylabel">  		L$ [AMT]  	</panel.string> -	<panel name="balance_bg"> +	<panel left="-425" name="balance_bg" width="215">  		<text name="balance" tool_tip="L$ bakiyenizi yenilemek için buraya tıklayın" value="L$20"/>  		<button label="L$ Satın Al" name="buyL" tool_tip="Daha fazla L$ satın almak için tıklayın"/>  		<button label="Alışveriş yap" name="goShop" tool_tip="Second Life Pazaryeri Aç" width="95"/> | 
