diff --git a/autobuild.xml b/autobuild.xml
index 84e0fd03263b1cd2da739cdc5bd194271001b850..a5578c9e4c6d814963cb838f815ec87d6b5f016b 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -2022,11 +2022,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
             <key>archive</key>
             <map>
               <key>hash</key>
-              <string>6b10752aa728c7763cd7b21843706a06d8067e06018c8dddf33487bccec64c0e0080a33546e769067538cdef8e6688623bc94278547f44671182ded91bc0ddaf</string>
+              <string>3a6ec1fce8accdbb7d6ee8d52e16822425449e42a76558a4475e3a5ae0ac404c3c51c7d0cb5b4aeb6892d8f76bee2fae690da0d5ce30dbb7e998f600c1a832bc</string>
               <key>hash_algorithm</key>
               <string>blake2b</string>
               <key>url</key>
-              <string>https://git.alchemyviewer.org/api/v4/projects/205/packages/generic/sdbus-cpp/1.4.0.2375/sdbus_cpp-1.4.0-linux64-2375.tar.zst</string>
+              <string>https://git.alchemyviewer.org/api/v4/projects/205/packages/generic/sdbus-cpp/1.5.0.2399/sdbus_cpp-1.5.0-linux64-2399.tar.zst</string>
             </map>
             <key>name</key>
             <string>linux64</string>
@@ -2039,7 +2039,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
         <key>copyright</key>
         <string>Copyright (c) 22016 - 2021 KISTLER INSTRUMENTE AG, Winterthur, Switzerland, (C) 2016 - 2022 Stanislav Angelovic stanislav.angelovic@protonmail.com</string>
         <key>version</key>
-        <string>1.4.0</string>
+        <string>1.5.0</string>
         <key>name</key>
         <string>sdbus-cpp</string>
         <key>canonical_repo</key>
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 6c69a45d87fc2f4d5266ea5fc8be8f274dd19adb..dcf82c1f19c2f2ad391315d0d7bfb8fad8b1e248 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -2064,7 +2064,11 @@ void LLFloater::handleShowCollapseButtonChanged(const LLSD& sdValue)
 void LLFloater::closeFrontmostFloater()
 {
 	LLFloater* floater_to_close = gFloaterView->getFrontmostClosableFloater();
-	if(floater_to_close)
+	if (LLMultiFloater* multi_floater = dynamic_cast<LLMultiFloater*>(floater_to_close))
+	{
+		multi_floater->closeDockedFloater();
+	}
+	else if(floater_to_close)
 	{
 		floater_to_close->closeFloater();
 	}
diff --git a/indra/llui/llmultifloater.cpp b/indra/llui/llmultifloater.cpp
index 94f6885a84060924f2ee69e136075b0791895400..af81184484f81855837ee4eee5be2709f9183ca2 100644
--- a/indra/llui/llmultifloater.cpp
+++ b/indra/llui/llmultifloater.cpp
@@ -315,10 +315,15 @@ void LLMultiFloater::removeFloater(LLFloater* floaterp)
 	floaterp->setCanDrag(TRUE);
 	floaterp->setHost(NULL);
 	floaterp->applyRectControl();
+	floaterp->setFollowsNone();
 
 	updateResizeLimits();
 
-	tabOpen((LLFloater*)mTabContainer->getCurrentPanel(), false);
+	LLFloater* tab_floaterp = dynamic_cast<LLFloater*>(mTabContainer->getCurrentPanel());
+	if (tab_floaterp)
+	{
+		tabOpen(tab_floaterp, false);
+	}
 }
 
 void LLMultiFloater::tabOpen(LLFloater* opened_floater, bool from_click)
@@ -360,23 +365,11 @@ void LLMultiFloater::setVisible(BOOL visible)
 
 BOOL LLMultiFloater::handleKeyHere(KEY key, MASK mask)
 {
-	if (key == 'W' && mask == MASK_CONTROL)
-	{
-		LLFloater* floater = getActiveFloater();
-		// is user closeable and is system closeable
-		if (floater && floater->canClose() && floater->isCloseable())
-		{
-			floater->closeFloater();
-
-			// EXT-5695 (Tabbed IM window loses focus if close any tabs by Ctrl+W)
-			// bring back focus on tab container if there are any tab left
-			if(mTabContainer->getTabCount() > 0)
-			{
-				mTabContainer->setFocus(TRUE);
-			}
-		}
-		return TRUE;
-	}
+	//if (key == 'W' && mask == MASK_CONTROL)
+	//{
+	//	closeDockedFloater();
+	//	return TRUE;
+	//}
 
 	return LLFloater::handleKeyHere(key, mask);
 }
@@ -529,3 +522,30 @@ void LLMultiFloater::computeResizeLimits(S32& new_min_width, S32& new_min_height
 		}
 	}
 }
+
+void LLMultiFloater::closeDockedFloater()
+{
+	LLFloater* floater = getActiveFloater();
+	// is user closeable and is system closeable
+	if (floater && floater->canClose() && floater->isCloseable())
+	{
+		floater->closeFloater();
+
+		// EXT-5695 (Tabbed IM window loses focus if close any tabs by Ctrl+W)
+		// bring back focus on tab container if there are any tab left
+		if(mTabContainer->getTabCount() > 0)
+		{
+			mTabContainer->setFocus(TRUE);
+		}
+		else
+		{
+			// Call closeFloater() here so that focus gets properly handed over
+			closeFloater();
+		}
+
+		return;
+	}
+
+	// Close multifloater itself if we can't close any hosted floaters
+	closeFloater();
+}
diff --git a/indra/llui/llmultifloater.h b/indra/llui/llmultifloater.h
index 85273e6533161d8e43e14645785c7d1f72209d14..f1aff9796e78c5ab67f50ff93f8f7fbfe812ce6a 100644
--- a/indra/llui/llmultifloater.h
+++ b/indra/llui/llmultifloater.h
@@ -76,6 +76,8 @@ class LLMultiFloater : public LLFloater
 	virtual void updateResizeLimits();
 	virtual void updateFloaterTitle(LLFloater* floaterp);
 
+	void closeDockedFloater();
+
 protected:
 	struct LLFloaterData
 	{
diff --git a/indra/llxml/llcontrol.cpp b/indra/llxml/llcontrol.cpp
index 82f759f8dcb3fde07f35a47b4d0c4dcc1486dff4..f2dd65758985140ecff40499c3eaf0bbddd6ab89 100644
--- a/indra/llxml/llcontrol.cpp
+++ b/indra/llxml/llcontrol.cpp
@@ -176,7 +176,7 @@ LLControlVariable::LLControlVariable(const std::string name, eControlType type,
 {
 	if ((persist != PERSIST_NO) && mComment.empty())
 	{
-		LL_ERRS() << "Must supply a comment for control " << mName << LL_ENDL;
+		LL_WARNS() << "Must supply a comment for control " << mName << LL_ENDL;
 	}
 	//Push back versus setValue'ing here, since we don't want to call a signal yet
 	mValues.push_back(initial);
diff --git a/indra/newview/aldiscordmanager.cpp b/indra/newview/aldiscordmanager.cpp
index 2adb8a7093a3ae92e9be5414b6f1eb48e990a1dc..2e7249894d6817a7f16eadacaa0e2320d7389fbc 100644
--- a/indra/newview/aldiscordmanager.cpp
+++ b/indra/newview/aldiscordmanager.cpp
@@ -87,6 +87,7 @@ void ALDiscordManager::init()
 		return;
 	}
 
+#if 0
 	mDiscord->SetLogHook(
 		discord::LogLevel::Info, [](discord::LogLevel level, const char* message)
 		{
@@ -100,19 +101,20 @@ void ALDiscordManager::init()
 					LL_WARNS() << "Discord: " << message << LL_ENDL;
 					break;
 				}
-				//case discord::LogLevel::Info:
-				//{
-				//	LL_DEBUGS() << "Discord: " << message << LL_ENDL;
-				//	break;
-				//}
-				//case discord::LogLevel::Debug:
-				//{
-				//	LL_DEBUGS() << "Discord: " << message << LL_ENDL;
-				//	break;
-				//}
+				case discord::LogLevel::Info:
+				{
+					LL_DEBUGS() << "Discord: " << message << LL_ENDL;
+					break;
+				}
+				case discord::LogLevel::Debug:
+				{
+					LL_DEBUGS() << "Discord: " << message << LL_ENDL;
+					break;
+				}
 				}
 			}
 		});
+#endif
 
 	discord::Activity activity{};
 	activity.GetAssets().SetLargeImage("alchemy_1024");
diff --git a/indra/newview/llappviewerlinux_api-client-glue.h b/indra/newview/llappviewerlinux_api-client-glue.h
index 56719ae020da396519e4a9515cf860f5a0ba472a..d38d518537ae391fa50d92eebce10f5a57133ba0 100644
--- a/indra/newview/llappviewerlinux_api-client-glue.h
+++ b/indra/newview/llappviewerlinux_api-client-glue.h
@@ -20,22 +20,27 @@ class ViewerAppAPI_proxy
 
 protected:
     ViewerAppAPI_proxy(sdbus::IProxy& proxy)
-        : proxy_(proxy)
+        : proxy_(&proxy)
     {
     }
 
+    ViewerAppAPI_proxy(const ViewerAppAPI_proxy&) = delete;
+    ViewerAppAPI_proxy& operator=(const ViewerAppAPI_proxy&) = delete;
+    ViewerAppAPI_proxy(ViewerAppAPI_proxy&&) = default;
+    ViewerAppAPI_proxy& operator=(ViewerAppAPI_proxy&&) = default;
+
     ~ViewerAppAPI_proxy() = default;
 
 public:
     bool GoSLURL(const std::string& slurl)
     {
         bool result;
-        proxy_.callMethod("GoSLURL").onInterface(INTERFACE_NAME).withArguments(slurl).storeResultsTo(result);
+        proxy_->callMethod("GoSLURL").onInterface(INTERFACE_NAME).withArguments(slurl).storeResultsTo(result);
         return result;
     }
 
 private:
-    sdbus::IProxy& proxy_;
+    sdbus::IProxy* proxy_;
 };
 
 }} // namespaces
diff --git a/indra/newview/llappviewerlinux_api-server-glue.h b/indra/newview/llappviewerlinux_api-server-glue.h
index ba04105f966e36f393020af35d4b83c1e5fb6513..b740c306a539b0bc05e7c92a3de96a1ee106306c 100644
--- a/indra/newview/llappviewerlinux_api-server-glue.h
+++ b/indra/newview/llappviewerlinux_api-server-glue.h
@@ -20,18 +20,23 @@ class ViewerAppAPI_adaptor
 
 protected:
     ViewerAppAPI_adaptor(sdbus::IObject& object)
-        : object_(object)
+        : object_(&object)
     {
-        object_.registerMethod("GoSLURL").onInterface(INTERFACE_NAME).withInputParamNames("slurl").withOutputParamNames("success_ret").implementedAs([this](const std::string& slurl){ return this->GoSLURL(slurl); });
+        object_->registerMethod("GoSLURL").onInterface(INTERFACE_NAME).withInputParamNames("slurl").withOutputParamNames("success_ret").implementedAs([this](const std::string& slurl){ return this->GoSLURL(slurl); });
     }
 
+    ViewerAppAPI_adaptor(const ViewerAppAPI_adaptor&) = delete;
+    ViewerAppAPI_adaptor& operator=(const ViewerAppAPI_adaptor&) = delete;
+    ViewerAppAPI_adaptor(ViewerAppAPI_adaptor&&) = default;
+    ViewerAppAPI_adaptor& operator=(ViewerAppAPI_adaptor&&) = default;
+
     ~ViewerAppAPI_adaptor() = default;
 
 private:
     virtual bool GoSLURL(const std::string& slurl) = 0;
 
 private:
-    sdbus::IObject& object_;
+    sdbus::IObject* object_;
 };
 
 }} // namespaces
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 2dafb816399339f65dddaf68cab5e69a97771610..6f76d89454d47b00e1fa5ff7433c07db89789345 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -426,8 +426,8 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("incoming_call", "floater_incoming_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLIncomingCallDialog>);
 	LLFloaterReg::add("inventory", "floater_my_inventory.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSidePanelContainer>);
 	LLFloaterReg::add("inspect", "floater_inspect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterInspect>);
-	LLFloaterReg::add("item_properties", "floater_item_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterItemProperties>);
-    LLFloaterReg::add("task_properties", "floater_task_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterItemProperties>);
+	LLFloaterReg::add("item_properties", "floater_item_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterItemProperties>, "item_properties");
+    LLFloaterReg::add("task_properties", "floater_task_properties.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterItemProperties>, "item_properties");
     LLFloaterReg::add("inventory_settings", "floater_inventory_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterInventorySettings>);
 	LLInspectAvatarUtil::registerFloater();
 	LLInspectGroupUtil::registerFloater();
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index 854bdeb863520ab803e68c8ea45a43211f2d389c..133e6e32e3dd7b38c935e518fa48924c0985e638 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -449,10 +449,10 @@
      follows="bottom|left|right"
      height="23"
      layout="topleft"
-     left="2"
+     left="10"
      name="button_panel"
      top_pad="6"
-     width="333">
+     width="313">
         <layout_stack
          follows="bottom|left|right"
          height="23"
@@ -462,7 +462,7 @@
          left="0"
          orientation="horizontal"
          top="0"
-         width="333">	
+         width="313">	
             <layout_panel
              follows="bottom|left|right"
              height="23"
diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
index 8488563106dd889a86c4657a295b3a0f0073a6c7..c201056b09155bd050189c7b3904f98f37ca71f8 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -165,7 +165,7 @@
 	         mouse_opaque="false"
 	         name="location_combo"
 	         top_delta="0"
-                width="355">
+                width="285">
              <combo_list
              mouse_wheel_opaque="true"/>
 	        </location_input>
@@ -206,7 +206,7 @@
              name="landmarks_btn"
              tool_tip="My Landmarks"
              top_delta="1"
-             left_pad="8"
+             left_pad="5"
              scale_image="false"
              image_overlay="Landmarks_overlay"
              image_hover_unselected="PushButton_Over">