diff options
author | pommicket <pommicket@gmail.com> | 2023-01-04 12:47:59 -0500 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2023-01-04 12:47:59 -0500 |
commit | 4736d2d6c02b2715bba58484eacce51495df2f4c (patch) | |
tree | 5ab45e40facbd507ad9cb5d638d522229ae7ac8b | |
parent | 3756a3e47221c3b0133724a482341a9010076a9e (diff) |
fix mouse clicks in the "go to definition" menu
-rw-r--r-- | main.c | 2 | ||||
-rw-r--r-- | ted.h | 3 | ||||
-rw-r--r-- | ui.c | 1 |
3 files changed, 4 insertions, 2 deletions
@@ -1,6 +1,5 @@ /* @TODO: -- handle mouse clicks in "go to definition..." menu - ted.h documentation - document lsp.h and lsp.c. - debug-lsp option (which logs LSP messages) @@ -25,6 +24,7 @@ - make buffer->path NULL for untitled buffers & fix resulting mess - rust-analyzer bug reports: - bad json can give "Unexpected error: client exited without proper shutdown sequence" + - containerName not always given - clangd bug report: - textDocumemt/definition on ted.h declarations just gives you the declaration FUTURE FEATURES: @@ -1130,7 +1130,8 @@ void selector_up(Ted *ted, Selector *s, i64 n); void selector_down(Ted *ted, Selector *s, i64 n); // sort entries alphabetically void selector_sort_entries_by_name(Selector *s); -// returns a null-terminated UTF-8 string of the option selected, or NULL if none was. +// returns a null-terminated UTF-8 string of the entry selected, or NULL if none was. +// also, sel->cursor will be set to the index of the entry, even if the mouse was used. // you should call free() on the return value. char *selector_update(Ted *ted, Selector *s); // NOTE: also renders the line buffer @@ -82,6 +82,7 @@ char *selector_update(Ted *ted, Selector *s) { for (uint c = 0; c < ted->nmouse_clicks[SDL_BUTTON_LEFT]; ++c) { if (rect_contains_point(entry_rect, ted->mouse_clicks[SDL_BUTTON_LEFT][c])) { // this option was selected + s->cursor = i; // indicate the index of the selected entry using s->cursor ret = str_dup(s->entries[i].name); break; } |