mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-09 09:38:19 +00:00
Consistently return true
from OnInput
function for used events
The `OnInput` function should return `true` exactly for events that were handled. In case of line inputs, the function returned `true` when then line input was changed instead. For the consoles, the function did not return `true` for some events that were handled.
This commit is contained in:
parent
00d941a309
commit
bdd7784bbb
|
@ -528,26 +528,35 @@ bool CGameConsole::CInstance::OnInput(const IInput::CEvent &Event)
|
|||
// Use Tab / Shift-Tab to cycle through search matches
|
||||
SelectNextSearchMatch(Direction);
|
||||
}
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_PAGEUP)
|
||||
{
|
||||
m_BacklogCurLine += GetLinesToScroll(-1, m_LinesRendered);
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_PAGEDOWN)
|
||||
{
|
||||
m_BacklogCurLine -= GetLinesToScroll(1, m_LinesRendered);
|
||||
if(m_BacklogCurLine < 0)
|
||||
{
|
||||
m_BacklogCurLine = 0;
|
||||
}
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_MOUSE_WHEEL_UP)
|
||||
{
|
||||
m_BacklogCurLine += GetLinesToScroll(-1, 1);
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_MOUSE_WHEEL_DOWN)
|
||||
{
|
||||
--m_BacklogCurLine;
|
||||
if(m_BacklogCurLine < 0)
|
||||
{
|
||||
m_BacklogCurLine = 0;
|
||||
}
|
||||
Handled = true;
|
||||
}
|
||||
// in order not to conflict with CLineInput's handling of Home/End only
|
||||
// react to it when the input is empty
|
||||
|
@ -555,16 +564,17 @@ bool CGameConsole::CInstance::OnInput(const IInput::CEvent &Event)
|
|||
{
|
||||
m_BacklogCurLine += GetLinesToScroll(-1, -1);
|
||||
m_BacklogLastActiveLine = m_BacklogCurLine;
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_END && m_Input.IsEmpty())
|
||||
{
|
||||
m_BacklogCurLine = 0;
|
||||
Handled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_F && m_pGameConsole->Input()->ModifierIsPressed() && Event.m_Flags & IInput::FLAG_PRESS)
|
||||
else if(Event.m_Key == KEY_F && m_pGameConsole->Input()->ModifierIsPressed())
|
||||
{
|
||||
m_Searching = !m_Searching;
|
||||
ClearSearch();
|
||||
|
||||
Handled = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -199,6 +199,7 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
if((Event.m_Flags & IInput::FLAG_TEXT) && !(KEY_LCTRL <= Event.m_Key && Event.m_Key <= KEY_RGUI))
|
||||
{
|
||||
SetRange(Event.m_aText, m_SelectionStart, m_SelectionEnd);
|
||||
KeyHandled = true;
|
||||
}
|
||||
|
||||
if(Event.m_Flags & IInput::FLAG_PRESS)
|
||||
|
@ -231,6 +232,7 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
}
|
||||
m_SelectionStart = m_SelectionEnd = m_CursorPos;
|
||||
}
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_DELETE)
|
||||
{
|
||||
|
@ -251,6 +253,7 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
}
|
||||
m_SelectionStart = m_SelectionEnd = m_CursorPos;
|
||||
}
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_LEFT)
|
||||
{
|
||||
|
@ -271,7 +274,10 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
}
|
||||
|
||||
if(!Selecting)
|
||||
{
|
||||
m_SelectionStart = m_SelectionEnd = m_CursorPos;
|
||||
}
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_RIGHT)
|
||||
{
|
||||
|
@ -292,7 +298,10 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
}
|
||||
|
||||
if(!Selecting)
|
||||
{
|
||||
m_SelectionStart = m_SelectionEnd = m_CursorPos;
|
||||
}
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_HOME)
|
||||
{
|
||||
|
@ -305,6 +314,7 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
m_SelectionEnd = 0;
|
||||
m_CursorPos = 0;
|
||||
m_SelectionStart = 0;
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(Event.m_Key == KEY_END)
|
||||
{
|
||||
|
@ -317,6 +327,7 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
m_SelectionStart = m_Len;
|
||||
m_CursorPos = m_Len;
|
||||
m_SelectionEnd = m_Len;
|
||||
KeyHandled = true;
|
||||
}
|
||||
else if(ModPressed && !AltPressed && Event.m_Key == KEY_V)
|
||||
{
|
||||
|
@ -381,12 +392,13 @@ bool CLineInput::ProcessInput(const IInput::CEvent &Event)
|
|||
{
|
||||
m_SelectionStart = 0;
|
||||
m_SelectionEnd = m_CursorPos = m_Len;
|
||||
KeyHandled = true;
|
||||
}
|
||||
}
|
||||
|
||||
m_WasCursorChanged |= OldCursorPos != m_CursorPos;
|
||||
m_WasCursorChanged |= SelectionLength != GetSelectionLength();
|
||||
return m_WasChanged || m_WasCursorChanged || KeyHandled;
|
||||
return KeyHandled;
|
||||
}
|
||||
|
||||
STextBoundingBox CLineInput::Render(const CUIRect *pRect, float FontSize, int Align, bool Changed, float LineWidth, float LineSpacing, const std::vector<STextColorSplit> &vColorSplits)
|
||||
|
|
Loading…
Reference in a new issue