Improve envelope editor double-click handling

Only handle the double-click on the envelope editor when the second click is released instead of when it is pressed down already.

Remove unnecessary UI element `s_BoxSelectId`, the temporary activation of which was causing the tooltip to be missing for one frame when clicking the envelope editor.
This commit is contained in:
Robert Müller 2024-06-14 23:15:00 +02:00
parent f061dfdc84
commit 264df1f035

View file

@ -6334,8 +6334,6 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
ResetZoomEnvelope(pEnvelope, s_ActiveChannels); ResetZoomEnvelope(pEnvelope, s_ActiveChannels);
} }
static int s_EnvelopeEditorId = 0;
ColorRGBA aColors[] = {ColorRGBA(1, 0.2f, 0.2f), ColorRGBA(0.2f, 1, 0.2f), ColorRGBA(0.2f, 0.2f, 1), ColorRGBA(1, 1, 0.2f)}; ColorRGBA aColors[] = {ColorRGBA(1, 0.2f, 0.2f), ColorRGBA(0.2f, 1, 0.2f), ColorRGBA(0.2f, 0.2f, 1), ColorRGBA(1, 1, 0.2f)};
CUIRect Button; CUIRect Button;
@ -6389,6 +6387,8 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
m_Map.OnModify(); m_Map.OnModify();
} }
static int s_EnvelopeEditorId = 0;
static int s_EnvelopeEditorButtonUsed = -1;
const bool ShouldPan = s_Operation == EEnvelopeEditorOp::OP_NONE && (Ui()->MouseButton(2) || (Ui()->MouseButton(0) && Input()->ModifierIsPressed())); const bool ShouldPan = s_Operation == EEnvelopeEditorOp::OP_NONE && (Ui()->MouseButton(2) || (Ui()->MouseButton(0) && Input()->ModifierIsPressed()));
if(m_pContainerPanned == &s_EnvelopeEditorId) if(m_pContainerPanned == &s_EnvelopeEditorId)
{ {
@ -6438,6 +6438,16 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
{ {
// do stuff // do stuff
if(Ui()->MouseButton(0)) if(Ui()->MouseButton(0))
{
s_EnvelopeEditorButtonUsed = 0;
if(s_Operation != EEnvelopeEditorOp::OP_BOX_SELECT && !Input()->ModifierIsPressed())
{
s_Operation = EEnvelopeEditorOp::OP_BOX_SELECT;
s_MouseXStart = Ui()->MouseX();
s_MouseYStart = Ui()->MouseY();
}
}
else if(s_EnvelopeEditorButtonUsed == 0)
{ {
if(Input()->MouseDoubleClick()) if(Input()->MouseDoubleClick())
{ {
@ -6462,14 +6472,7 @@ void CEditor::RenderEnvelopeEditor(CUIRect View)
RemoveTimeOffsetEnvelope(pEnvelope); RemoveTimeOffsetEnvelope(pEnvelope);
m_Map.OnModify(); m_Map.OnModify();
} }
else if(s_Operation != EEnvelopeEditorOp::OP_BOX_SELECT && !Input()->ModifierIsPressed()) s_EnvelopeEditorButtonUsed = -1;
{
static int s_BoxSelectId = 0;
Ui()->SetActiveItem(&s_BoxSelectId);
s_Operation = EEnvelopeEditorOp::OP_BOX_SELECT;
s_MouseXStart = Ui()->MouseX();
s_MouseYStart = Ui()->MouseY();
}
} }
m_ShowEnvelopePreview = SHOWENV_SELECTED; m_ShowEnvelopePreview = SHOWENV_SELECTED;