Skip to content

Commit

Permalink
Keycodes restored
Browse files Browse the repository at this point in the history
The onKeyDown handler was reading the wrong part of the data
structure, so keypresses didn't navigate patches. Moreover, the
handler was over-registered. Finally, once those problems were
fixes, make + and - zoom and unzoom the UI.

Closes surge-synthesizer#496 Keyboard Hook doesn't work
Closes surge-synthesizer#479 +/- for zoom
Closes surge-synthesizer#427 Keyboard hook over-registered

Due to an error in windows VSTGUI this doesn't fully work on
windows, with the keyboard zoom not being supported there.
See issue surge-synthesizer#500 for a description of why.


Former-commit-id: e0ff13f2588bbfec2ece60f9217e17522756d0fa [formerly 5aef139]
Former-commit-id: 9e8d3af55f3c457372964310ba83c19e29da1224
Former-commit-id: f8a51113f2f5e6d738efa060371ab5fbd4cf095a
  • Loading branch information
baconpaul committed Feb 4, 2019
1 parent 3bea96c commit 3710db4
Showing 1 changed file with 38 additions and 36 deletions.
74 changes: 38 additions & 36 deletions src/common/gui/SurgeGUIEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -419,44 +419,44 @@ void SurgeGUIEditor::refresh_mod()

int32_t SurgeGUIEditor::onKeyDown(const VstKeyCode& code, CFrame* frame)
{
switch (code.character)
{
case VKEY_ALT:
// modsource = modsource_editor;
// queue_refresh = true;
mod_editor = true;
refresh_mod();
return 1;
case VKEY_TAB:
toggle_mod_editing();
return 1;
case VKEY_LEFT:
synth->incrementCategory(false);
return 1;
case VKEY_RIGHT:
synth->incrementCategory(true);
return 1;
case VKEY_UP:
synth->incrementPatch(false);
return 1;
case VKEY_DOWN:
synth->incrementPatch(true);
return 1;
}
return -1;
if(code.virt != 0 )
{
switch (code.virt)
{
case VKEY_TAB:
toggle_mod_editing();
return 1;
case VKEY_LEFT:
synth->incrementCategory(false);
return 1;
case VKEY_RIGHT:
synth->incrementCategory(true);
return 1;
case VKEY_UP:
synth->incrementPatch(false);
return 1;
case VKEY_DOWN:
synth->incrementPatch(true);
return 1;
}
}
else
{
switch(code.character)
{
case '+':
setZoomFactor(getZoomFactor()+10);
return 1;
case '-':
setZoomFactor(getZoomFactor()-10);
return 1;
}
}
return -1;
}

int32_t SurgeGUIEditor::onKeyUp(const VstKeyCode& keyCode, CFrame* frame)
{
switch (keyCode.character)
{
case VKEY_ALT:
// modsource = 0;
// queue_refresh = true;
mod_editor = false;
refresh_mod();
return 1;
}
return -1;
}

Expand Down Expand Up @@ -499,8 +499,6 @@ void SurgeGUIEditor::openOrRecreateEditor()
return;
assert(frame);

getFrame()->registerKeyboardHook(this);

if (editor_open)
close_editor();

Expand Down Expand Up @@ -1255,6 +1253,10 @@ bool PLUGIN_API SurgeGUIEditor::open(void* parent, const PlatformType& platformT
synth = (sub3_synth*)plug->plugin_instance;
#endif*/

/*
** Register only once (when we open)
*/
frame->registerKeyboardHook(this);
openOrRecreateEditor();

return true;
Expand Down

0 comments on commit 3710db4

Please sign in to comment.