diff options
author | howie-f <rftc@gmx.de> | 2020-10-29 08:29:16 +0000 |
---|---|---|
committer | howie-f <rftc@gmx.de> | 2020-11-03 09:07:00 +0000 |
commit | 7d98a00f698db69bbdb7029d4a12b0e30abab886 (patch) | |
tree | 72a12a5a7292393baf25f6fb949d5894c95afddc | |
parent | 04c135ca0b65bb4c3205b49878cd4b17745fab4b (diff) |
[addons] DialogAddonInfo: fix button focussing
-rw-r--r-- | xbmc/addons/gui/GUIDialogAddonInfo.cpp | 10 | ||||
-rw-r--r-- | 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(); |