Index: binaries/data/mods/public/gui/gamesetup/gamesetup.js =================================================================== --- binaries/data/mods/public/gui/gamesetup/gamesetup.js +++ binaries/data/mods/public/gui/gamesetup/gamesetup.js @@ -2196,18 +2196,22 @@ let hidden = indexHidden || !!obj.hidden && obj.hidden(playerIdx); let selected = hidden ? -1 : dropdown.list_data.indexOf(String(obj.get(playerIdx))); - let enabled = !indexHidden && (!obj.enabled || obj.enabled(playerIdx)); + let enabled = g_IsController && !indexHidden && (!obj.enabled || obj.enabled(playerIdx)); + let tooltip = enabled && !indexHidden && obj.tooltip ? obj.tooltip(-1, playerIdx) : ""; - dropdown.enabled = g_IsController && enabled; - dropdown.hidden = !g_IsController || !enabled || hidden; + dropdown.enabled = enabled; + dropdown.hidden = !enabled || hidden; dropdown.selected = selected; - dropdown.tooltip = !indexHidden && obj.tooltip ? obj.tooltip(-1, playerIdx) : ""; + dropdown.tooltip = tooltip; if (frame) frame.hidden = hidden; if (title && obj.title && !indexHidden) + { title.caption = sprintf(translateWithContext("Title for specific setting", "%(setting)s:"), { "setting": obj.title(playerIdx) }); + title.tooltip = tooltip; + } if (label && !indexHidden) { @@ -2226,7 +2230,8 @@ let checked = obj.get(); let hidden = !!obj.hidden && obj.hidden(); - let enabled = !obj.enabled || obj.enabled(); + let enabled = g_IsController && (!obj.enabled || obj.enabled()); + let tooltip = enabled && obj.tooltip ? obj.tooltip() : ""; let [guiName, guiType, guiIdx] = getGUIObjectNameFromSetting(name); let checkbox = Engine.GetGUIObjectByName(guiName + guiType + guiIdx); @@ -2238,18 +2243,21 @@ Engine.GetGUIObjectByName(guiName + "Dropdown" + guiIdx).hidden = true; checkbox.checked = checked; - checkbox.enabled = g_IsController && enabled; - checkbox.hidden = hidden || !g_IsController; - checkbox.tooltip = obj.tooltip ? obj.tooltip() : ""; + checkbox.hidden = !enabled || hidden; + checkbox.tooltip = tooltip; label.caption = checked ? translate("Yes") : translate("No"); - label.hidden = hidden || g_IsController; + label.hidden = !checkbox.hidden; + label.tooltip = tooltip; if (frame) frame.hidden = hidden; if (title && obj.title) + { title.caption = sprintf(translate("%(setting)s:"), { "setting": obj.title() }); + title.tooltip = tooltip; + } } function updateGUIMiscControl(name, playerIdx) Index: binaries/data/mods/public/gui/gamesetup/gamesetup.xml =================================================================== --- binaries/data/mods/public/gui/gamesetup/gamesetup.xml +++ binaries/data/mods/public/gui/gamesetup/gamesetup.xml @@ -110,6 +110,7 @@ type="text" size="0 0 170 30" style="ModernRightLabelText" + tooltip_style="onscreenToolTip" z="1" />