From c339f131d89885d3f21cb68e1bbdd05d601f89cf Mon Sep 17 00:00:00 2001 From: Daniel Collin Date: Sat, 24 Nov 2012 17:37:48 +0100 Subject: [PATCH] ctrl + arrow up/down to goto prev/next key --- ogl_editor/src/Editor.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/ogl_editor/src/Editor.c b/ogl_editor/src/Editor.c index 6f4f2ff..6b50f34 100644 --- a/ogl_editor/src/Editor.c +++ b/ogl_editor/src/Editor.c @@ -448,8 +448,24 @@ bool Editor_keyDown(int key, int modifiers) case EMGUI_ARROW_DOWN: { + const int active_track = getActiveTrack(); int row = row_pos; + if (modifiers & EMGUI_KEY_CTRL) + { + struct sync_track* t = getTracks()[active_track]; + + if (t->keys) + { + int idx = key_idx_floor(t, row); + + if (idx >= 0) + viewInfo->rowPos = t->keys[emini(idx + 1, t->num_keys - 1)].row; + } + + break; + } + row += modifiers & EMGUI_KEY_ALT ? 8 : 1; if ((modifiers & EMGUI_KEY_COMMAND) || row > viewInfo->endRow) @@ -475,6 +491,19 @@ bool Editor_keyDown(int key, int modifiers) { int row = row_pos; + if (modifiers & EMGUI_KEY_CTRL) + { + struct sync_track* t = getTracks()[active_track]; + + if (t->keys) + { + int idx = key_idx_floor(t, row); + viewInfo->rowPos = t->keys[emaxi(idx - 1, 0)].row; + } + + break; + } + row -= modifiers & EMGUI_KEY_ALT ? 8 : 1; if ((modifiers & EMGUI_KEY_COMMAND) || row < viewInfo->startRow)