From b6fede093bfc575dc9e421a9b63e88e30f0e75b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?tekkub=20=CA=95=20=C2=B4=E1=B4=A5=60=20=CA=94?= Date: Sun, 11 Sep 2016 19:50:09 -0600 Subject: [PATCH] Use hooks for showing placeholder --- externals/ui-textinput.lua | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/externals/ui-textinput.lua b/externals/ui-textinput.lua index c6a78de..2a877ae 100644 --- a/externals/ui-textinput.lua +++ b/externals/ui-textinput.lua @@ -5,17 +5,12 @@ local myname, ns = ... local BORDER_TEXTURE = "Interface\\Common\\Common-Input-Border" -local function OnShow(self) - self.placeholder:Show() -end - - local function OnEditFocusGained(self) self.placeholder:Hide() end -local function OnEditFocusLost(self) +local function ShowPlaceholderIfEmpty(self) if self:GetText() == "" then self.placeholder:Show() end end @@ -51,9 +46,10 @@ function ns.NewTextInput(parent) placeholder:SetTextColor(0.75, 0.75, 0.75, 1) editbox.placeholder = placeholder - editbox:SetScript("OnShow", OnShow) - editbox:SetScript("OnEditFocusGained", OnEditFocusGained) - editbox:SetScript("OnEditFocusLost", OnEditFocusLost) + editbox:HookScript("OnEditFocusGained", OnEditFocusGained) + editbox:HookScript("OnEditFocusLost", ShowPlaceholderIfEmpty) + editbox:HookScript("OnTextSet", ShowPlaceholderIfEmpty) + editbox:SetScript("OnEscapePressed", editbox.ClearFocus) editbox:SetScript("OnEnterPressed", editbox.ClearFocus)