Skip to content

Commit ace6394

Browse files
committed
[looper] increase rescan/rebuild delay when a prompt is open
1 parent b2d296b commit ace6394

File tree

1 file changed

+36
-3
lines changed

1 file changed

+36
-3
lines changed

src/lnav.cc

+36-3
Original file line numberDiff line numberDiff line change
@@ -1682,12 +1682,10 @@ static void looper()
16821682
}
16831683
}
16841684
else {
1685+
bool got_user_input = false;
16851686
if (pollfd_ready(pollfds, STDIN_FILENO)) {
16861687
int ch;
16871688

1688-
next_status_update_time = ui_clock::now();
1689-
next_rescan_time = next_status_update_time + 1s;
1690-
next_rebuild_time = next_rescan_time;
16911689
while ((ch = getch()) != ERR) {
16921690
alerter::singleton().new_input(ch);
16931691

@@ -1704,6 +1702,27 @@ static void looper()
17041702
break;
17051703
}
17061704
}
1705+
1706+
got_user_input = true;
1707+
next_status_update_time = ui_clock::now();
1708+
switch (lnav_data.ld_mode) {
1709+
case LNM_PAGING:
1710+
case LNM_FILTER:
1711+
case LNM_FILES:
1712+
next_rescan_time = next_status_update_time + 1s;
1713+
break;
1714+
case LNM_COMMAND:
1715+
case LNM_SEARCH:
1716+
case LNM_SEARCH_FILTERS:
1717+
case LNM_SEARCH_FILES:
1718+
case LNM_CAPTURE:
1719+
case LNM_SQL:
1720+
case LNM_EXEC:
1721+
case LNM_USER:
1722+
next_rescan_time = next_status_update_time + 1min;
1723+
break;
1724+
}
1725+
next_rebuild_time = next_rescan_time;
17071726
}
17081727

17091728
for (auto &tc : lnav_data.ld_views) {
@@ -1714,10 +1733,24 @@ static void looper()
17141733
lnav_data.ld_bottom_source.update_hits(tc);
17151734
};
17161735

1736+
auto old_mode = lnav_data.ld_mode;
17171737
rlc.check_poll_set(pollfds);
17181738
lnav_data.ld_filter_source.fss_editor.check_poll_set(pollfds);
17191739
lnav_data.ld_filter_view.check_poll_set(pollfds);
17201740
lnav_data.ld_files_view.check_poll_set(pollfds);
1741+
1742+
if (lnav_data.ld_mode != old_mode) {
1743+
switch (lnav_data.ld_mode) {
1744+
case LNM_PAGING:
1745+
case LNM_FILTER:
1746+
case LNM_FILES:
1747+
next_rescan_time = next_status_update_time + 1s;
1748+
next_rebuild_time = next_rescan_time;
1749+
break;
1750+
default:
1751+
break;
1752+
}
1753+
}
17211754
}
17221755

17231756
if (timer.time_to_update(overlay_counter)) {

0 commit comments

Comments
 (0)