forked from Mirrorlandia_minetest/minetest
Add paste command (Ctrl-V) in GUIChatConsole
This commit is contained in:
parent
cfba55ba0a
commit
daefd0ab36
@ -407,6 +407,15 @@ void ChatPrompt::input(wchar_t ch)
|
||||
m_nick_completion_end = 0;
|
||||
}
|
||||
|
||||
void ChatPrompt::input(const std::wstring &str)
|
||||
{
|
||||
m_line.insert(m_cursor, str);
|
||||
m_cursor += str.size();
|
||||
clampView();
|
||||
m_nick_completion_start = 0;
|
||||
m_nick_completion_end = 0;
|
||||
}
|
||||
|
||||
std::wstring ChatPrompt::submit()
|
||||
{
|
||||
std::wstring line = m_line;
|
||||
|
@ -142,8 +142,9 @@ public:
|
||||
ChatPrompt(std::wstring prompt, u32 history_limit);
|
||||
~ChatPrompt();
|
||||
|
||||
// Input character
|
||||
// Input character or string
|
||||
void input(wchar_t ch);
|
||||
void input(const std::wstring &str);
|
||||
|
||||
// Submit, clear and return current line
|
||||
std::wstring submit();
|
||||
|
@ -507,6 +507,19 @@ bool GUIChatConsole::OnEvent(const SEvent& event)
|
||||
scope);
|
||||
return true;
|
||||
}
|
||||
else if(event.KeyInput.Key == KEY_KEY_V && event.KeyInput.Control)
|
||||
{
|
||||
// Ctrl-V pressed
|
||||
// paste text from clipboard
|
||||
IOSOperator *os_operator = Environment->getOSOperator();
|
||||
const c8 *text = os_operator->getTextFromClipboard();
|
||||
if (text)
|
||||
{
|
||||
std::wstring wtext = narrow_to_wide(text);
|
||||
m_chat_backend->getPrompt().input(wtext);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if(event.KeyInput.Key == KEY_KEY_U && event.KeyInput.Control)
|
||||
{
|
||||
// Ctrl-U pressed
|
||||
|
Loading…
Reference in New Issue
Block a user