Browse Source

Correction to Find dialog, related to !390: last_search variable is now correctly updated when search entry is set to current selection. Also reverted history workaround.

notebook_tab
eidheim 7 years ago
parent
commit
b1a3943da4
  1. 6
      src/entrybox.cc
  2. 13
      src/window.cc

6
src/entrybox.cc

@ -21,13 +21,7 @@ EntryBox::Entry::Entry(const std::string &content, std::function<void(const std:
if(key->keyval == GDK_KEY_Up || key->keyval == GDK_KEY_KP_Up) { if(key->keyval == GDK_KEY_Up || key->keyval == GDK_KEY_KP_Up) {
auto &history = entry_histories[get_placeholder_text()]; auto &history = entry_histories[get_placeholder_text()];
if(history.size() > 0) { if(history.size() > 0) {
if(selected_history == 0 && history.front() != get_text()) {
// This restores correct history behavior with find text initialized
// from a source view selection.
}
else {
selected_history++; selected_history++;
}
if(selected_history >= history.size()) if(selected_history >= history.size())
selected_history = history.size() - 1; selected_history = history.size() - 1;
set_text(history[selected_history]); set_text(history[selected_history]);

13
src/window.cc

@ -1440,18 +1440,19 @@ void Window::search_and_replace_entry() {
} }
} }
}; };
if(auto view = Notebook::get().get_current_view()) {
auto const selected = view->get_selected_text();
if(!selected.empty()) {
last_search = selected;
}
}
EntryBox::get().entries.emplace_back(last_search, [](const std::string &content) { EntryBox::get().entries.emplace_back(last_search, [](const std::string &content) {
if(auto view = Notebook::get().get_current_view()) if(auto view = Notebook::get().get_current_view())
view->search_forward(); view->search_forward();
}); });
auto search_entry_it = EntryBox::get().entries.begin(); auto search_entry_it = EntryBox::get().entries.begin();
search_entry_it->set_placeholder_text("Find"); search_entry_it->set_placeholder_text("Find");
if(auto view = Notebook::get().get_current_view()) {
auto const selected = view->get_selected_text();
if(!selected.empty()) {
search_entry_it->set_text(selected);
}
}
if(auto view = Notebook::get().get_current_view()) { if(auto view = Notebook::get().get_current_view()) {
view->update_search_occurrences = [label_it](int number) { view->update_search_occurrences = [label_it](int number) {
label_it->update(0, std::to_string(number)); label_it->update(0, std::to_string(number));

Loading…
Cancel
Save