aboutsummaryrefslogtreecommitdiffstats
path: root/ScreenManager.c
diff options
context:
space:
mode:
authorDaniel Lange <DLange@git.local>2022-02-04 11:23:02 +0100
committerDaniel Lange <DLange@git.local>2022-02-04 11:23:02 +0100
commita6822e98434cf7da6fab033898094976d881ee0f (patch)
tree2b0f2ac3ad8c9e9a8c01bb692d9bdb51ce91e83b /ScreenManager.c
parent30ce3b4c264c51c98f280e88e23792ff7deb2317 (diff)
downloaddebian_htop-a6822e98434cf7da6fab033898094976d881ee0f.tar.gz
debian_htop-a6822e98434cf7da6fab033898094976d881ee0f.tar.bz2
debian_htop-a6822e98434cf7da6fab033898094976d881ee0f.zip
New upstream version 3.1.2upstream/3.1.2
Diffstat (limited to 'ScreenManager.c')
-rw-r--r--ScreenManager.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/ScreenManager.c b/ScreenManager.c
index 54dec64..96e9c47 100644
--- a/ScreenManager.c
+++ b/ScreenManager.c
@@ -88,7 +88,7 @@ void ScreenManager_resize(ScreenManager* this) {
Panel_move(panel, lastX, y1_header);
}
-static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTimeout, bool* redraw, bool* rescan, bool* timedOut) {
+static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTimeout, bool* redraw, bool* rescan, bool* timedOut, bool *force_redraw) {
ProcessList* pl = this->header->pl;
Platform_gettime_realtime(&pl->realtime, &pl->realtimeMs);
@@ -103,6 +103,7 @@ static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTi
if (*rescan) {
*oldTime = newTime;
+ int oldUidDigits = Process_uidDigits;
// scan processes first - some header values are calculated there
ProcessList_scan(pl, this->state->pauseProcessUpdate);
// always update header, especially to avoid gaps in graph meters
@@ -111,6 +112,10 @@ static void checkRecalculation(ScreenManager* this, double* oldTime, int* sortTi
ProcessList_sort(pl);
*sortTimeout = 1;
}
+ // force redraw if the number of UID digits was changed
+ if (Process_uidDigits != oldUidDigits) {
+ *force_redraw = true;
+ }
*redraw = true;
}
if (*redraw) {
@@ -153,7 +158,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
while (!quit) {
if (this->header) {
- checkRecalculation(this, &oldTime, &sortTimeout, &redraw, &rescan, &timedOut);
+ checkRecalculation(this, &oldTime, &sortTimeout, &redraw, &rescan, &timedOut, &force_redraw);
}
if (redraw || force_redraw) {

© 2014-2024 Faster IT GmbH | imprint | privacy policy