Nathan Scott
75fd9edf75
Reorder the header update and process scanning
...
BenBE points out that some header meters use values calculated
during process scanning - make sure we scan processes first in
order that current values are displayed.
Related to https://github.com/htop-dev/htop/pull/574
2021-03-31 07:50:45 +02:00
Christian Göttsche
b862e36ee7
Separate data-update and drawing of header
2021-03-04 23:57:45 +01:00
Christian Göttsche
fd4e6b432b
Use MainPanel type in State struct
...
The State struct holds a pointer to the main process panel.
Use the distinct MainPanel type, to improve maintainability regrading
its usage.
This avoids usages of down-casts from Panel to MainPanel, only up-casts
from MainPanel to Panel are now required.
2021-02-05 14:12:49 +01:00
Daniel Lange
12f5f06e88
Check for sortTimeout to not run towards -inf
...
Seems to happen on Mac OS "Big Sur" (~forced application sleep)
Partial fix for #510
2021-02-01 16:02:31 +01:00
Christian Göttsche
d72b0a682e
Mark several non-modified pointer variables const
2021-01-11 20:12:34 +01:00
Daniel Lange
2ba8a81d47
Fix clearing the last line in setup on function bar change (thanks cgzones)
2021-01-11 13:47:33 +01:00
Christian Göttsche
a3cced9fb6
Add option to hide the Function Bar
...
Support three settings:
- Always show Function Bar
- Always hide the Function Bar, except in Infoscreens (Env/Locks...)
and when editing the search and filter mode
- Hide the Function Bar on ESC until the next user input
Closes : #439
2021-01-04 23:12:43 +01:00
Christian Göttsche
24c5ca9ddf
Panel: rework hight logic
...
The hight of a Panel dpends on whether the Panel has a header or not.
Also the header migth not be set on Panel creation, like in the
MainPanel. This currently causes the cursor to get hidden behind the
FunctionBar on down-scrolling.
2021-01-04 23:12:43 +01:00
Christian Göttsche
86d2931255
Restore highlighted header of current sorted process column
2020-12-23 12:47:04 +01:00
Christian Göttsche
e3862aa67e
Rework drawing of FunctionBar
...
Draw the FunctionBar within Panel_draw instead of manually throughout
the code.
Add an optional PanelClass function drawFunctionBar, to allow specific
panels to override the default FunctionBar_draw call.
Rework the code on color change, to really change all colors (selection
markers and panel headers).
Closes : #402
2020-12-20 17:01:50 +01:00
Daniel Lange
7b739b6292
Fix pause mode ("Z") in tree view
2020-12-09 13:28:15 +01:00
Benny Baumann
c49ca61dd9
Common order for ESC/q/F10
2020-12-03 22:41:31 +01:00
Christian Göttsche
19b5141685
Hide process selection on ESC
...
Do not highlight the current process line after pressing ESC in the main
screen.
Restore after pressing any key.
2020-11-28 19:49:38 +01:00
Nathan Scott
fee217551c
Drop unneeded parameters to the ScreenManager constructor
...
All calls to ScreenManager_new always pass the same first
five values, the orientation is always HORIZONTAL and the
y1 parameter is always the height of the passed-in header
struct pointer. I think its safe to assert at this point
that no VERTICAL orientation will arrive (if it does, its
no harm in re-adding this then) - so we can remove unused
conditionals (and TODOs) based on orientation too.
2020-11-26 23:55:53 +01:00
Daniel Lange
0951090fa4
Merge branch 'hili-new-old' of adsr/htop into highlight-new-old-processes
2020-11-16 12:55:07 +01:00
Benny Baumann
45869513bf
Embracing branches
2020-11-02 22:15:01 +01:00
Benny Baumann
61e14d4bb2
Spacing around operators
2020-11-02 22:15:01 +01:00
Adam Saponara
dde71c6637
Highlight new and old processes ( #74 )
2020-10-30 21:56:16 -04:00
Christian Göttsche
96e2a4259e
Continue to update generic data in paused mode
...
Generic data, as CPU and memory usage, are used by Meters.
In paused mode they would stop receiving updates and especially Graph
Meters would stop showing continuous data.
Improves: #214
Closes : #253
2020-10-19 14:45:39 +02:00
Benny Baumann
0f5262917f
Make all required includes explicit
...
Information as seen by IWYU 0.12 + clang 9 on Linux
2020-10-18 20:09:05 +02:00
Christian Göttsche
b47bc667a2
Add key to pause process list updates
2020-10-12 13:04:00 +02:00
Daniel Lange
079c2abf8e
Update License consistently to GPLv2 as per COPYING file
2020-10-05 10:13:12 +02:00
Christian Göttsche
18b1e9fba9
Do not drop qualifier in cast
...
ListItem.c:73:33: warning: cast from 'const void *' to 'struct ListItem_ *' drops const qualifier [-Wcast-qual]
ListItem* obj1 = (ListItem*) cast1;
^
ListItem.c:74:33: warning: cast from 'const void *' to 'struct ListItem_ *' drops const qualifier [-Wcast-qual]
ListItem* obj2 = (ListItem*) cast2;
^
Process.c:434:28: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Process* p1 = (Process*)v1;
^
Process.c:435:28: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Process* p2 = (Process*)v2;
^
Process.c:441:36: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Settings *settings = ((Process*)v1)->settings;
^
Process.c:443:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p1 = (Process*)v1;
^
Process.c:444:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p2 = (Process*)v2;
^
Process.c:446:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p2 = (Process*)v1;
^
Process.c:447:22: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
p1 = (Process*)v2;
^
AffinityPanel.c:37:16: warning: cast from 'const char *' to 'void *' drops const qualifier [-Wcast-qual]
free((void*)this->text);
^
AffinityPanel.c:39:19: warning: cast from 'const char *' to 'void *' drops const qualifier [-Wcast-qual]
free((void*)this->indent);
^
linux/LinuxProcess.c:294:36: warning: cast from 'const void *' to 'struct Process_ *' drops const qualifier [-Wcast-qual]
Settings *settings = ((Process*)v1)->settings;
^
linux/LinuxProcess.c:296:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p1 = (LinuxProcess*)v1;
^
linux/LinuxProcess.c:297:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p2 = (LinuxProcess*)v2;
^
linux/LinuxProcess.c:299:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p2 = (LinuxProcess*)v1;
^
linux/LinuxProcess.c:300:27: warning: cast from 'const void *' to 'struct LinuxProcess_ *' drops const qualifier [-Wcast-qual]
p1 = (LinuxProcess*)v2;
^
linux/LinuxProcessList.c:62:32: warning: cast from 'const void *' to 'struct TtyDriver_ *' drops const qualifier [-Wcast-qual]
TtyDriver* a = (TtyDriver*) va;
^
linux/LinuxProcessList.c:63:32: warning: cast from 'const void *' to 'struct TtyDriver_ *' drops const qualifier [-Wcast-qual]
TtyDriver* b = (TtyDriver*) vb;
^
linux/Battery.c:130:21: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
free((char *) isOnline);
^
linux/Battery.c:197:26: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/type", entryName);
^
linux/Battery.c:209:29: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/uevent", entryName);
^
linux/Battery.c:262:29: warning: cast from 'const char *' to 'char *' drops const qualifier [-Wcast-qual]
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/online", entryName);
^
2020-09-24 20:14:17 +02:00
Nathan Scott
c9ecd0fa74
Revert the vim_mode setting for now, needs a rethink
...
There have been too many bugs reported in vim_mode, and
the proposed fixes are increasingly fragile - hence we
have decided to back it out for now. For reference:
https://github.com/htop-dev/htop/issues/69
https://github.com/htop-dev/htop/pull/37
https://github.com/htop-dev/htop/pull/106
The whitespace changes also arrived in commit 12805f61d
not sure what that was about, but backed out as well.
2020-09-15 09:33:58 +10:00
Zev Weiss
a1a027b9bd
Axe automated header generation.
...
Reasoning:
- implementation was unsound -- broke down when I added a fairly
basic macro definition expanding to a struct initializer in a *.c
file.
- made it way too easy (e.g. via otherwise totally innocuous git
commands) to end up with timestamps such that it always ran
MakeHeader.py but never used its output, leading to overbuild noise
when running what should be a null 'make'.
- but mostly: it's just an awkward way of dealing with C code.
2020-09-03 11:58:58 -05:00
Nathan Scott
5c5a599a2a
Merge branch 'hishamhm-pull-959'
2020-08-20 14:57:30 +10:00
Daniel Flanagan
12805f61d8
Add simple vim mode
...
This commit adds a "vim_mode" setting (false/`0` by default) that causes
keys to be remapped in the following way by the `ScreenManager`:
+ h -> LEFT
+ j -> DOWN
+ k -> UP
+ l -> RIGHT
+ LEFT -> h (toggle help)
+ DOWN -> j (noop)
+ UP -> k (open kill menu)
+ RIGHT -> l (lsof current process)
+ K (Shift+K) -> k (open kill menu)
+ J (Shift+J) -> K (toggle show/hide kernel threads)
+ L (Shift+L) -> l (lsof current process)
I couldn't figure out where the manpage documentation is in the repo,
though I admittedly did not look particularly hard.
I believe this change would be a welcome option for heavy vim users like myself
who would like a familiar way to get around in htop.
2019-10-31 11:20:55 -05:00
MartinJM
b0e24cd5a5
Added an option to disable the mouse.
2019-07-12 21:41:09 +02:00
Alan Barr
79c939eb84
Remove duplicated if condition
...
The for loop already handles i being < nPanels
Raised by cppcheck
2019-02-10 14:16:46 +01:00
Hisham
0128d222b9
Added Ctrl+A and Ctrl+E to go to beginning and end of line.
...
(Also, '^' and '$')
Closes #508 .
2016-06-15 12:45:23 -03:00
Hisham
645057d81a
Use set_escdelay() to avoid problems with ESCDELAY as a macro.
2016-05-19 16:09:47 -03:00
Hisham
c23d4f12d1
Fix behavior of ESC key, getting rid of the annoying delay.
...
Thank you @Explorer09 for the push!
Closes #417 .
2016-02-19 13:38:02 -02:00
Hisham
b54d2dde40
Check for failure in allocations.
2016-02-02 15:53:02 +01:00
Michael Klein
99b947058f
vi keys: translate ALT-h/j/k/l to arrow keys
2016-01-12 21:15:04 +01:00
Hisham Muhammad
78be8201dc
Add expand/collapse on additional clicks!
2015-08-19 19:09:54 -03:00
Hisham Muhammad
b003636958
Support for NCurses 6.0 and mouse wheel
2015-08-19 18:55:24 -03:00
Hisham Muhammad
a93db5234c
handle clicks on panel header line
2015-03-24 23:12:43 -03:00
Hisham Muhammad
ade7993fcb
incremental search and filter reintegrated!
2015-03-23 17:04:53 -03:00
Hisham Muhammad
d0c72c3fb2
Move FunctionBar inside Panel
2015-03-23 15:26:56 -03:00
Hisham Muhammad
1084a3ff8f
Working on integration of IncSet in new branch.
2015-03-22 22:39:33 -03:00
Hisham Muhammad
09c7152990
Refactor state control variables.
2015-03-22 02:50:40 -03:00
Hisham Muhammad
6f868b00c0
Fix allocation of processes. Closes #166 .
2015-02-20 14:52:10 -02:00
Hisham Muhammad
d7c843c23b
Complete cursor-based movement of headers.
2015-02-03 22:32:07 +01:00
Hisham Muhammad
c2108e5a48
Another mega-patch for the refactoring process.
...
Kinda runs, but functionality from the original main loop
is still missing. Patience.
2015-01-23 03:08:21 -02:00
Hisham Muhammad
3383d8e556
Sorry about the mega-patch.
...
This is a work-in-progress, code is currently broken.
(Some actions, and notably, the header, are missing.)
2015-01-21 23:27:31 -02:00
Hisham Muhammad
9faf4938b8
Refactored key handlers.
...
Made the logic more modular, hopefully easier to follow,
and removed repeated code.
Plus, some optimization in RichString code.
2014-11-19 23:17:52 -02:00
Hisham Muhammad
ee5dc46fee
Don't end up killing init if process selected to be killed terminates before the user selects a signal. Closes #3606072 .
2013-02-26 20:24:27 +00:00
Hisham Muhammad
00b324bfc1
Changes in object model: separate class objects to store vtable. Also, nicer UTF-8 display of big numbers.
2012-12-05 15:12:20 +00:00
Hisham Muhammad
2a73405cd0
search and filter for the strace and lsof screens!
2012-11-10 00:31:37 +00:00
Hisham Muhammad
45f7a4fc8d
Remove old memory debugging routines. We have Valgrind nowadays.
2011-12-26 22:04:29 +00:00