@@ -1682,12 +1682,10 @@ static void looper()
1682
1682
}
1683
1683
}
1684
1684
else {
1685
+ bool got_user_input = false ;
1685
1686
if (pollfd_ready (pollfds, STDIN_FILENO)) {
1686
1687
int ch;
1687
1688
1688
- next_status_update_time = ui_clock::now ();
1689
- next_rescan_time = next_status_update_time + 1s;
1690
- next_rebuild_time = next_rescan_time;
1691
1689
while ((ch = getch ()) != ERR) {
1692
1690
alerter::singleton ().new_input (ch);
1693
1691
@@ -1704,6 +1702,27 @@ static void looper()
1704
1702
break ;
1705
1703
}
1706
1704
}
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;
1707
1726
}
1708
1727
1709
1728
for (auto &tc : lnav_data.ld_views ) {
@@ -1714,10 +1733,24 @@ static void looper()
1714
1733
lnav_data.ld_bottom_source .update_hits (tc);
1715
1734
};
1716
1735
1736
+ auto old_mode = lnav_data.ld_mode ;
1717
1737
rlc.check_poll_set (pollfds);
1718
1738
lnav_data.ld_filter_source .fss_editor .check_poll_set (pollfds);
1719
1739
lnav_data.ld_filter_view .check_poll_set (pollfds);
1720
1740
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
+ }
1721
1754
}
1722
1755
1723
1756
if (timer.time_to_update (overlay_counter)) {
0 commit comments