From 7d98a00f698db69bbdb7029d4a12b0e30abab886 Mon Sep 17 00:00:00 2001 From: howie-f Date: Thu, 29 Oct 2020 08:29:16 +0000 Subject: [addons] DialogAddonInfo: fix button focussing --- xbmc/addons/gui/GUIDialogAddonInfo.cpp | 10 +++++----- xbmc/addons/gui/GUIDialogAddonInfo.h | 8 +++++++- 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(); -- cgit v1.2.3