aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhowie-f <rftc@gmx.de>2020-10-29 08:29:16 +0000
committerhowie-f <rftc@gmx.de>2020-11-03 09:07:00 +0000
commit7d98a00f698db69bbdb7029d4a12b0e30abab886 (patch)
tree72a12a5a7292393baf25f6fb949d5894c95afddc
parent04c135ca0b65bb4c3205b49878cd4b17745fab4b (diff)
[addons] DialogAddonInfo: fix button focussing
-rw-r--r--xbmc/addons/gui/GUIDialogAddonInfo.cpp10
-rw-r--r--xbmc/addons/gui/GUIDialogAddonInfo.h8
2 files changed, 12 insertions, 6 deletions
diff --git a/xbmc/addons/gui/GUIDialogAddonInfo.cpp b/xbmc/addons/gui/GUIDialogAddonInfo.cpp
index 64461143aa..4f7951884b 100644
--- a/xbmc/addons/gui/GUIDialogAddonInfo.cpp
+++ b/xbmc/addons/gui/GUIDialogAddonInfo.cpp
@@ -160,10 +160,10 @@ bool CGUIDialogAddonInfo::OnAction(const CAction& action)
void CGUIDialogAddonInfo::OnInitWindow()
{
CGUIDialog::OnInitWindow();
- UpdateControls();
+ UpdateControls(PerformButtonFocus::YES);
}
-void CGUIDialogAddonInfo::UpdateControls()
+void CGUIDialogAddonInfo::UpdateControls(PerformButtonFocus performButtonFocus)
{
if (!m_item)
return;
@@ -202,7 +202,7 @@ void CGUIDialogAddonInfo::UpdateControls()
}
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_INSTALL, canInstall);
- if (canInstall)
+ if (canInstall && performButtonFocus == PerformButtonFocus::YES)
{
SET_CONTROL_FOCUS(CONTROL_BTN_INSTALL, 0);
}
@@ -244,7 +244,7 @@ void CGUIDialogAddonInfo::UpdateControls()
SET_CONTROL_LABEL(CONTROL_BTN_SELECT, CanUse() ? 21480 : (CanOpen() ? 21478 : 21479));
CONTROL_ENABLE_ON_CONDITION(CONTROL_BTN_SETTINGS, isInstalled && m_localAddon->HasSettings());
- if (isInstalled && m_localAddon->HasSettings())
+ if (isInstalled && m_localAddon->HasSettings() && performButtonFocus == PerformButtonFocus::YES)
{
SET_CONTROL_FOCUS(CONTROL_BTN_SETTINGS, 0);
}
@@ -586,7 +586,7 @@ void CGUIDialogAddonInfo::OnEnableDisable()
CServiceBroker::GetAddonMgr().EnableAddon(m_localAddon->ID());
}
- UpdateControls();
+ UpdateControls(PerformButtonFocus::NO);
}
void CGUIDialogAddonInfo::OnSettings()
diff --git a/xbmc/addons/gui/GUIDialogAddonInfo.h b/xbmc/addons/gui/GUIDialogAddonInfo.h
index 8bfef9102e..68b48e326b 100644
--- a/xbmc/addons/gui/GUIDialogAddonInfo.h
+++ b/xbmc/addons/gui/GUIDialogAddonInfo.h
@@ -21,6 +21,12 @@ enum class Reactivate
NO,
};
+enum class PerformButtonFocus
+{
+ YES,
+ NO,
+};
+
class CGUIDialogAddonInfo : public CGUIDialog
{
public:
@@ -44,7 +50,7 @@ private:
* @return true if we can display information, false otherwise
*/
bool SetItem(const CFileItemPtr& item);
- void UpdateControls();
+ void UpdateControls(PerformButtonFocus performButtonFocus);
void OnUpdate();
void OnSelectVersion();