ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Bug Reports (https://www.esoui.com/forums/forumdisplay.php?f=187)
-   -   [fixed] Little bug in chat since last update (can't type anymore). (https://www.esoui.com/forums/showthread.php?t=4888)

Ayantir 07/13/15 09:10 AM

[fixed] Little bug in chat since last update (can't type anymore).
 
Hello,

I'm permit myself to submit a little bug that french users seems to get since last update. because I don't have it myself (because i'm using an addon which rewrite a lot the chatbox), I tried to reproduce it without any addons .. this bug get's its topic on Officials forums, but I didn't found any complaints in other languages, it's maybe not french related bug !


So :

First It should have been pulled in code after 2.0.8. But I don't know which patch precisly.
Folks complains for this problems since few weeks. If you got an idea.

The bug is pretty simple :
  • You can't type in chat entry box anymore.
  • Hit "enter" does nothing.
  • Clicking on entry box does nothing
  • You can use the "/" but it will be the only string inserted in the entry box. you won't have focus to type.
  • And you'll be blocked in cursormode. (so you can't move camera).


With an old addon (ChatMultiWindow) I can reproduce the bug with a 99% chance) by just enabling it.
After looking at this old addon code, it's this code which bug the thing :

Lua Code:
  1. ZO_ChatWindowTextEntryEditBox:SetHandler("OnFocusLost",     ChatMultiWindow.OnFocusLost)
  2.  
  3. function ChatMultiWindow.OnFocusLost(self)
  4.     for i=GetNumChatContainers(), 2, -1  do
  5.         CHAT_SYSTEM.containers[i].fadeAnim.m_fadeTimeline:PlayForward()
  6.         for j=1, #CHAT_SYSTEM.containers[i].windows do
  7.             CHAT_SYSTEM.containers[i].windows[j].buffer:SetLineFade(25, 2)
  8.         end
  9.     end
  10. end



I greatly think it's related so, If ZOS want have a look, just do without any addon in any language :


- /reloadui
- Hit "enter" to go in cursor mode
- click on the Say label next to entry box to get the switch list
- choose /tell
- You're bugged

To unbug, you can simply choose another switch.
But for people who related me this problem, only a reloadui can help. And they can't say how they triggerred it.

Also with the old addon listed above, the switch don't help a lot, bug come back very quickly.
Because this bug just looks like a lot that ours, I think if you can fix this one, the other one will be fixed.


Thank you!

votan 07/13/15 09:56 AM

A similar issue is reported here: Harven's Chat Completion
It is reproducable (with german client) as described there. And I posted a fix for it.
The important part is:
control.system:GetEditControl():TakeFocus()

circonian 07/13/15 12:24 PM

I can reproduce this 100% of the time without any addons & without doing anything special, just clicking on the label & selecting "/tell" does it every time.

It appears that in:
Lua Code:
  1. function SharedChatSystem:ShowTextEntryMenu()
  2.    ...
  3.    if data.target then
  4.       AddMenuItem(switch, function() self:StartTextEntry(switch .. " ") end, nil, nil, itemColor)
  5.    else
  6.       AddMenuItem(switch, function() self:SetChannel(data.id) end, nil, nil, itemColor)
  7.    end
  8.   ...
  9. end

The "/tell" switch is the only one that requires a target & thus the only one that gets added to the menu with:
Lua Code:
  1. AddMenuItem(switch, function() self:StartTextEntry(switch .. " ") end, nil, nil, itemColor)

But since they are not passing the channel to the function:
Lua Code:
  1. function SharedChatSystem:StartTextEntry(text, channel, target)
  2.     if not self.currentChannel or channel then
  3.         self:SetChannel(channel or CHAT_CHANNEL_SAY, target)  
  4.     end
  5.  ...
  6. end
That code never runs & the channel never gets set.

The function:
Lua Code:
  1. function SharedChatSystem:SetChannel(newChannel, channelTarget)
is also the function that assigns focus to the control. Since the channel never gets set for the "/tell" switch, it never gets focus either.

It looks like it should have been:
Lua Code:
  1. function SharedChatSystem:ShowTextEntryMenu()
  2.    ...
  3.    if data.target then
  4.       --==== it should have also passed the channel here (data.id) ====--
  5.       AddMenuItem(switch, function() self:StartTextEntry(switch .. " ", data.id) end, nil, nil, itemColor)
  6.    else
  7.       AddMenuItem(switch, function() self:SetChannel(data.id) end, nil, nil, itemColor)
  8.    end
  9.   ...
  10. end

votan 07/13/15 01:47 PM

Yep. In Harven's Chat Completion the function StartTextEntry is called with a text only, too.

This is one way to fix it:
Code:

do
        local orgStartTextEntry = SharedChatSystem.StartTextEntry
        function SharedChatSystem:StartTextEntry(text, channel, ...)
                orgStartTextEntry(self, text, channel or self.currentChannel or CHAT_CHANNEL_SAY, ...)
        end
end

That's something for merlight's Aid ZO UI Fixes, I think :)

circonian 07/13/15 02:17 PM

Quote:

Originally Posted by votan (Post 22006)
That's something for merlight's Aid ZO UI Fixes, I think :)

Yeah thats what I was thinking it would be a good addition.

ZOS_ChipHilseberg 07/14/15 12:59 PM

We put in a fix for this internally. There was actually quite a bit of oddness with that menu that we cleaned up.


All times are GMT -6. The time now is 07:34 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI