FLUID: Adds wrapping to "find" in source view.

This commit is contained in:
Matthias Melcher
2023-11-16 11:20:42 +01:00
parent 348c1876e6
commit d28d03e1ac
2 changed files with 11 additions and 4 deletions
+4
View File
@@ -309,6 +309,8 @@ static void cb_(Fl_Button*, void*) {
int pos = e->insert_position()-1; int pos = e->insert_position()-1;
if (pos < 0) pos = b->length()-1; if (pos < 0) pos = b->length()-1;
int found = b->search_backward(pos, needle, &pos, sv_find_text_case->value()); int found = b->search_backward(pos, needle, &pos, sv_find_text_case->value());
if (!found)
found = b->search_backward(b->length()-1, needle, &pos, sv_find_text_case->value());
if (found) { if (found) {
b->select(pos, pos + (int)strlen(needle)); b->select(pos, pos + (int)strlen(needle));
e->insert_position(pos); e->insert_position(pos);
@@ -332,6 +334,8 @@ static void cb_1(Fl_Button*, void*) {
int pos = e->insert_position() + 1; int pos = e->insert_position() + 1;
if (pos+1 >= b->length()) pos = 0; if (pos+1 >= b->length()) pos = 0;
int found = b->search_forward(pos, needle, &pos, sv_find_text_case->value()); int found = b->search_forward(pos, needle, &pos, sv_find_text_case->value());
if (!found && (pos > 0))
found = b->search_forward(0, needle, &pos, sv_find_text_case->value());
if (found) { if (found) {
b->select(pos, pos + (int)strlen(needle)); b->select(pos, pos + (int)strlen(needle));
e->insert_position(pos); e->insert_position(pos);
+6 -3
View File
@@ -152,8 +152,7 @@ file.} open return_type void
sv_project->scroll(line, 0); sv_project->scroll(line, 0);
} }
} }
}} {selected }} {}
}
} }
Function {update_sourceview_position_cb(class Fl_Tabs*, void*)} { Function {update_sourceview_position_cb(class Fl_Tabs*, void*)} {
@@ -383,12 +382,14 @@ if (e) {
int pos = e->insert_position()-1; int pos = e->insert_position()-1;
if (pos < 0) pos = b->length()-1; if (pos < 0) pos = b->length()-1;
int found = b->search_backward(pos, needle, &pos, sv_find_text_case->value()); int found = b->search_backward(pos, needle, &pos, sv_find_text_case->value());
if (!found)
found = b->search_backward(b->length()-1, needle, &pos, sv_find_text_case->value());
if (found) { if (found) {
b->select(pos, pos + (int)strlen(needle)); b->select(pos, pos + (int)strlen(needle));
e->insert_position(pos); e->insert_position(pos);
e->show_insert_position(); e->show_insert_position();
} }
}} }} selected
xywh {273 460 25 20} labelsize 11 xywh {273 460 25 20} labelsize 11
} }
Fl_Button {} { Fl_Button {} {
@@ -407,6 +408,8 @@ if (e) {
int pos = e->insert_position() + 1; int pos = e->insert_position() + 1;
if (pos+1 >= b->length()) pos = 0; if (pos+1 >= b->length()) pos = 0;
int found = b->search_forward(pos, needle, &pos, sv_find_text_case->value()); int found = b->search_forward(pos, needle, &pos, sv_find_text_case->value());
if (!found && (pos > 0))
found = b->search_forward(0, needle, &pos, sv_find_text_case->value());
if (found) { if (found) {
b->select(pos, pos + (int)strlen(needle)); b->select(pos, pos + (int)strlen(needle));
e->insert_position(pos); e->insert_position(pos);