summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2021-03-14 15:53:20 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2021-03-14 15:53:20 -0400
commit624399da9992b92f59daef4a79575c338e989e3e (patch)
treee45db1f1ab1a7ec5fc20617c07a253d286518ba0
parent72592df32eddeb11ebdbb61a1c2437d82eb2f73b (diff)
fix find menu scroll bug, for real this time
-rw-r--r--buffer.c8
-rw-r--r--find.c2
2 files changed, 4 insertions, 6 deletions
diff --git a/buffer.c b/buffer.c
index 4b3535c..c4143c9 100644
--- a/buffer.c
+++ b/buffer.c
@@ -2182,6 +2182,9 @@ bool buffer_handle_click(Ted *ted, TextBuffer *buffer, v2 click, u8 times) {
}
if (buffer_pixels_to_pos(buffer, click, &buffer_pos)) {
// user clicked on buffer
+ if (!ted->menu || buffer->is_line_buffer) {
+ ted_switch_to_buffer(ted, buffer);
+ }
if (buffer == ted->active_buffer) {
switch (ted->key_modifier) {
case KEY_MODIFIER_SHIFT:
@@ -2217,11 +2220,6 @@ bool buffer_handle_click(Ted *ted, TextBuffer *buffer, v2 click, u8 times) {
}
return true;
}
- // better to do this after handing click, because some stuff called by ted_switch_to_buffer
- // needs to know the correct cursor pos
- if (!ted->menu || buffer->is_line_buffer) {
- ted_switch_to_buffer(ted, buffer);
- }
}
return false;
}
diff --git a/find.c b/find.c
index 0587b61..d4a24c4 100644
--- a/find.c
+++ b/find.c
@@ -155,7 +155,7 @@ static void find_update(Ted *ted, bool force) {
find_buffer->modified = false;
if (best_scroll_candidate.line != U32_MAX) // scroll to first match (if there is one)
buffer_scroll_to_pos(buffer, best_scroll_candidate);
- } else {
+ } else if (find_buffer->modified) {
buffer_scroll_to_cursor(buffer);
}
}