Hello all!
I am building a chat box in a multiplayer project. I want to make it so after typing and sending your message, pressing ESC refocuses to game. (and eventually pressing TAB to switch between all chat and team chat.)
I can’t figure out how to detect ESC or Tab input when text box has keyboard focus.
Here’s my setup:
In event begin play, I’m setting input mode to game only:
Then, by pressing T, it focuses to chat text box, so I can immediately start typing a message without having to click the text box with my mouse:
Then, here’s what ESC is bound to do in player controller:
I have this debug print string setup on event tick to monitor what the widget has in focus:
Here’s what my results are:
Right as I go in game, where I can control my player:
Any user focus: false/ Has user focus: false/ Keyboard focus: false
Pressing T once, where I can now type a message:
Any user focus: false/ Has user focus: false/ Keyboard focus: true
Pressing ESC once, now I’m stuck in some weird interface mode where WASD registers my character movement input, but my mouse is free to move around, and if I want to look around as player, I have to right click drag the screen (I’m using third person BP template). I can use my mouse to click the textbox to focus back on it.
Any user focus: true/ Has user focus: true/ Keyboard focus: true
Pressing ESC twice, does my intended effect, bringing me back to game only input.
Any user focus: false/ Has user focus: false/ Keyboard focus: false
This tells me somewhere is consuming my ESC input (and Tab input) before my player controller can handle it. Anyone know where and how I can modify it to do what I want?
Thank you!