diff --git a/CHANGELOG.md b/CHANGELOG.md index 2127bbb..848b832 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,13 @@ All notable changes to EasyFind will be documented in this file. --- -## [2.1.4] - 2026-07-20 +## [2.1.4] - 2026-07-21 ### Added -- **Data broker launcher**: EasyFind now publishes a launcher for display bars that host data broker objects, so it can be opened from one instead of the minimap button. Left-click toggles the search bar, right-click opens the options. Nothing changes if no such display is installed. +- **Data broker support**: if you use a display bar that hosts data broker objects, EasyFind can now be launched from it instead of the minimap button. Left-click toggles the search bar, right-click opens the options. Every other way in still works, Auto-Hide included, and nothing changes if no such display is installed. + +### Fixed +- **Welcome screen**: the version number is no longer cut off in the tutorial's welcome title --- diff --git a/Core/Main.lua b/Core/Main.lua index ed49f12..13ccccb 100644 --- a/Core/Main.lua +++ b/Core/Main.lua @@ -1229,6 +1229,12 @@ local LAUNCHER_ICON = "Interface\\AddOns\\EasyFind\\textures\\SpyglassMinimap" -- The brand name, never localized, shown wherever the addon names itself. local ADDON_LABEL = "EasyFind" +-- Display-owned buttons our data broker launcher has been clicked through. +-- The search bar's outside-click close consults this so clicking a launcher +-- toggles the bar instead of closing and immediately reopening it. Weak keys: +-- a display rebuilding its bar must not keep dead frames alive. +ns.brokerLauncherButtons = setmetatable({}, { __mode = "k" }) + local minimapButton local minimapShapes = { @@ -1392,7 +1398,11 @@ function ns.RegisterDataBroker() type = "launcher", label = ADDON_LABEL, icon = LAUNCHER_ICON, - OnClick = function(_, button) + OnClick = function(self, button) + -- Remember the display's button so the search bar's outside-click + -- close recognises it as one of ours (see brokerLauncherButtons in + -- SearchBar). Weak-keyed: a display may rebuild its buttons. + if self then ns.brokerLauncherButtons[self] = true end if button == "RightButton" then EasyFind:OpenOptions() else diff --git a/Locales/deDE.lua b/Locales/deDE.lua index ad2ef56..53bac7b 100644 --- a/Locales/deDE.lua +++ b/Locales/deDE.lua @@ -258,9 +258,10 @@ L["WHATSNEW_CHAT_HELLO"] = "Willkommen bei |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "hier" L["WHATSNEW_CHANGELOG_LINK"] = "Vollständiges Änderungsprotokoll" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffData-Broker-Starter|r\n" .. - " |cff999999-|r Starte EasyFind über eine Data-Broker-Leiste\n" .. - " statt über das Minimap-Symbol" + "|cffFFD100\226\128\162|r |cffffffffData-Broker-Unterstützung|r\n" .. + " |cff999999-|r Wer eine Data-Broker-Leiste nutzt, kann EasyFind\n" .. + " jetzt darüber statt über das Minimap-Symbol öffnen\n" .. + " (alle anderen Wege bleiben, auch Auto-Ausblenden)" -- Context menu L["CTX_ADD_ALIAS"] = "Alias hinzufügen" diff --git a/Locales/enUS.lua b/Locales/enUS.lua index 25fa29f..8d2beac 100644 --- a/Locales/enUS.lua +++ b/Locales/enUS.lua @@ -279,9 +279,10 @@ L["WHATSNEW_CHAT_HERE"] = "here" -- The body is rewritten per release. Edit this single string each version. L["WHATSNEW_CHANGELOG_LINK"] = "See full changelog" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffData broker launcher|r\n" .. - " |cff999999-|r Launch EasyFind from a data broker display bar\n" .. - " instead of the minimap button" + "|cffFFD100\226\128\162|r |cffffffffAdded data broker support|r\n" .. + " |cff999999-|r If you use a data broker display bar, EasyFind can\n" .. + " now be launched from it instead of the minimap button\n" .. + " (every other way still works, Auto-Hide included)" -- ============================================================================= -- Shared/Utils.lua -- context menu labels diff --git a/Locales/esES.lua b/Locales/esES.lua index 1ad8b01..d4ffd62 100644 --- a/Locales/esES.lua +++ b/Locales/esES.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "¡Bienvenido a |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "aquí" L["WHATSNEW_CHANGELOG_LINK"] = "Ver el registro de cambios completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffLanzador de Data Broker|r\n" .. - " |cff999999-|r Abre EasyFind desde una barra de Data Broker\n" .. - " en lugar del icono del minimapa" + "|cffFFD100\226\128\162|r |cffffffffCompatibilidad con Data Broker|r\n" .. + " |cff999999-|r Si usas una barra de Data Broker, ahora puedes abrir\n" .. + " EasyFind desde ella en lugar del icono del minimapa\n" .. + " (las demás formas siguen igual, incluido Ocultar auto.)" -- Context menu L["CTX_ADD_ALIAS"] = "Añadir alias" diff --git a/Locales/esMX.lua b/Locales/esMX.lua index 87a0ff0..b06fc8a 100644 --- a/Locales/esMX.lua +++ b/Locales/esMX.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "¡Bienvenido a |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "aquí" L["WHATSNEW_CHANGELOG_LINK"] = "Ver el registro de cambios completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffLanzador de Data Broker|r\n" .. - " |cff999999-|r Abre EasyFind desde una barra de Data Broker\n" .. - " en lugar del icono del minimapa" + "|cffFFD100\226\128\162|r |cffffffffCompatibilidad con Data Broker|r\n" .. + " |cff999999-|r Si usas una barra de Data Broker, ahora puedes abrir\n" .. + " EasyFind desde ella en lugar del icono del minimapa\n" .. + " (las demás formas siguen igual, incluido Ocultar auto.)" -- Context menu L["CTX_ADD_ALIAS"] = "Añadir alias" diff --git a/Locales/frFR.lua b/Locales/frFR.lua index eb0a296..8d9a7a7 100644 --- a/Locales/frFR.lua +++ b/Locales/frFR.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "Bienvenue dans |cFF00FF00EasyFind v%s L["WHATSNEW_CHAT_HERE"] = "ici" L["WHATSNEW_CHANGELOG_LINK"] = "Voir le journal des modifications complet" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffLanceur Data Broker|r\n" .. - " |cff999999-|r Lancez EasyFind depuis une barre Data Broker\n" .. - " au lieu de l'icône de la minicarte" + "|cffFFD100\226\128\162|r |cffffffffPrise en charge de Data Broker|r\n" .. + " |cff999999-|r Si vous utilisez une barre Data Broker, vous pouvez\n" .. + " y lancer EasyFind au lieu de l'icône de la minicarte\n" .. + " (les autres moyens restent, Masquage auto compris)" -- Context menu L["CTX_ADD_ALIAS"] = "Ajouter un alias" diff --git a/Locales/itIT.lua b/Locales/itIT.lua index 3e2410b..644f3ad 100644 --- a/Locales/itIT.lua +++ b/Locales/itIT.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "Benvenuto in |cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "qui" L["WHATSNEW_CHANGELOG_LINK"] = "Vedi il changelog completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffAvvio da Data Broker|r\n" .. - " |cff999999-|r Avvia EasyFind da una barra Data Broker\n" .. - " invece che dall'icona della minimappa" + "|cffFFD100\226\128\162|r |cffffffffSupporto Data Broker|r\n" .. + " |cff999999-|r Se usi una barra Data Broker, ora puoi avviare\n" .. + " EasyFind da lì invece che dall'icona della minimappa\n" .. + " (gli altri modi restano, incluso Nascondi auto.)" -- Context menu L["CTX_ADD_ALIAS"] = "Aggiungi alias" diff --git a/Locales/koKR.lua b/Locales/koKR.lua index 7b29092..964d958 100644 --- a/Locales/koKR.lua +++ b/Locales/koKR.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "|cFF00FF00EasyFind v%s|r에 오신 L["WHATSNEW_CHAT_HERE"] = "여기" L["WHATSNEW_CHANGELOG_LINK"] = "전체 변경 사항 보기" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff데이터 브로커 실행기|r\n" .. - " |cff999999-|r 미니맵 아이콘 대신 데이터 브로커 표시줄에서\n" .. - " EasyFind를 실행할 수 있습니다" + "|cffFFD100\226\128\162|r |cffffffff데이터 브로커 지원 추가|r\n" .. + " |cff999999-|r 데이터 브로커 표시줄을 사용한다면 미니맵 아이콘\n" .. + " 대신 표시줄에서 EasyFind를 실행할 수 있습니다\n" .. + " (자동 숨김을 비롯한 기존 방식도 그대로 사용 가능)" -- Context menu L["CTX_ADD_ALIAS"] = "별칭 추가" diff --git a/Locales/ptBR.lua b/Locales/ptBR.lua index 754dd3b..84d99b1 100644 --- a/Locales/ptBR.lua +++ b/Locales/ptBR.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "Bem-vindo ao |cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "aqui" L["WHATSNEW_CHANGELOG_LINK"] = "Ver o changelog completo" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffLançador de Data Broker|r\n" .. - " |cff999999-|r Abra o EasyFind por uma barra de Data Broker\n" .. - " em vez do ícone do minimapa" + "|cffFFD100\226\128\162|r |cffffffffSuporte a Data Broker|r\n" .. + " |cff999999-|r Se você usa uma barra de Data Broker, agora pode abrir\n" .. + " o EasyFind por ela em vez do ícone do minimapa\n" .. + " (as outras formas continuam, incluindo Ocultar auto.)" -- Context menu L["CTX_ADD_ALIAS"] = "Adicionar apelido" diff --git a/Locales/ruRU.lua b/Locales/ruRU.lua index 0d19e04..9982995 100644 --- a/Locales/ruRU.lua +++ b/Locales/ruRU.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "Добро пожаловать в |c L["WHATSNEW_CHAT_HERE"] = "здесь" L["WHATSNEW_CHANGELOG_LINK"] = "Полный список изменений" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffffЗапуск через Data Broker|r\n" .. - " |cff999999-|r Открывайте EasyFind с панели Data Broker,\n" .. - " а не только значком на миникарте" + "|cffFFD100\226\128\162|r |cffffffffПоддержка Data Broker|r\n" .. + " |cff999999-|r Если вы пользуетесь панелью Data Broker, EasyFind\n" .. + " теперь можно открыть с неё, а не значком на миникарте\n" .. + " (остальные способы работают, включая Автоскрытие)" -- Context menu L["CTX_ADD_ALIAS"] = "Добавить псевдоним" diff --git a/Locales/zhCN.lua b/Locales/zhCN.lua index 0a5b06a..5713b18 100644 --- a/Locales/zhCN.lua +++ b/Locales/zhCN.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "欢迎使用|cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "这里" L["WHATSNEW_CHANGELOG_LINK"] = "查看完整更新日志" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff数据面板启动器|r\n" .. - " |cff999999-|r 可从数据面板插件栏启动 EasyFind,\n" .. - " 无需使用小地图图标" + "|cffFFD100\226\128\162|r |cffffffff新增数据面板支持|r\n" .. + " |cff999999-|r 如果你使用数据面板插件栏,现在可以从那里启动\n" .. + " EasyFind,而不必使用小地图图标\n" .. + " (其他方式照常可用,包括自动隐藏)" -- Context menu L["CTX_ADD_ALIAS"] = "添加别名" diff --git a/Locales/zhTW.lua b/Locales/zhTW.lua index 976a8f4..2eb1d94 100644 --- a/Locales/zhTW.lua +++ b/Locales/zhTW.lua @@ -256,9 +256,10 @@ L["WHATSNEW_CHAT_HELLO"] = "歡迎使用|cFF00FF00EasyFind v%s|r L["WHATSNEW_CHAT_HERE"] = "這裡" L["WHATSNEW_CHANGELOG_LINK"] = "查看完整更新日誌" L["WHATSNEW_BODY"] = - "|cffFFD100\226\128\162|r |cffffffff資料面板啟動器|r\n" .. - " |cff999999-|r 可從資料面板插件列啟動 EasyFind,\n" .. - " 不必使用小地圖圖示" + "|cffFFD100\226\128\162|r |cffffffff新增資料面板支援|r\n" .. + " |cff999999-|r 如果你使用資料面板插件列,現在可以從那裡啟動\n" .. + " EasyFind,不必使用小地圖圖示\n" .. + " (其他方式照常可用,包括自動隱藏)" -- Context menu L["CTX_ADD_ALIAS"] = "新增別名" diff --git a/Onboarding/TutorialWizard.lua b/Onboarding/TutorialWizard.lua index 7ea6cec..ed7b298 100644 --- a/Onboarding/TutorialWizard.lua +++ b/Onboarding/TutorialWizard.lua @@ -564,6 +564,11 @@ end -- close-X on the right so a long localised title gets ellipsised instead of -- overflowing under the chrome. local HEADER_MAX_W = WIZ_W - 140 +-- The welcome title is centred below the logo, clear of that chrome row, so it +-- only needs page margins rather than the back-arrow and close-X reserve. It +-- also renders 1.5x larger than every other header, and the tighter bound cut +-- the version off ("Welcome to EasyFind v2.1..."), worse in longer locales. +local WELCOME_MAX_W = WIZ_W - 48 local function BodyText(parent, text) local fs = parent:CreateFontString(nil, "OVERLAY", "GameFontHighlight") @@ -604,7 +609,7 @@ local function BuildPage1(parent) logo:SetPoint("TOP", p, "TOP", 0, -40) local version = ns.version or (C_AddOns and C_AddOns.GetAddOnMetadata and C_AddOns.GetAddOnMetadata("EasyFind", "Version")) or "2.0.0" - local title = HeaderText(p, L["TUT_WELCOME_TITLE"]:format(version), nil, HEADER_MAX_W) + local title = HeaderText(p, L["TUT_WELCOME_TITLE"]:format(version), nil, WELCOME_MAX_W) title:SetPoint("TOP", logo, "BOTTOM", 0, -22) do local path, sz, fl = title:GetFont() diff --git a/Search/SearchBar.lua b/Search/SearchBar.lua index 27eb2a7..f05cf49 100644 --- a/Search/SearchBar.lua +++ b/Search/SearchBar.lua @@ -1861,18 +1861,29 @@ function Search:CreateSearchFrame() -- click. Catches the minimap button (and any other "click target -- that should NOT close the bar") even if our OnMouseDown flag -- races against this event handler. + -- Data broker launchers count the same way. Their buttons belong to + -- whichever display hosts them, so we cannot name them up front or + -- hook them early enough to win the flag race -- the launcher records + -- each button it is clicked through instead, and this check covers it + -- from then on. Without it the bar closes here on mouse-DOWN and the + -- launcher's mouse-UP handler reopens it, so it blinks instead of + -- toggling shut. local mmBtn = _G["EasyFindMinimapButton"] - if mmBtn then - if GetMouseFoci then - local foci = GetMouseFoci() - if foci then - for i = 1, #foci do - if foci[i] == mmBtn then return end - end + local launchers = ns.brokerLauncherButtons + local function IsLauncherTarget(frame) + if not frame then return false end + if mmBtn and frame == mmBtn then return true end + return (launchers and launchers[frame]) and true or false + end + if GetMouseFoci then + local foci = GetMouseFoci() + if foci then + for i = 1, #foci do + if IsLauncherTarget(foci[i]) then return end end - elseif GetMouseFocus and GetMouseFocus() == mmBtn then - return end + elseif GetMouseFocus and IsLauncherTarget(GetMouseFocus()) then + return end if self:IsMouseOver() then return end if Utils.IsFrameVisiblyMouseOver(resultsFrame) then return end