summaryrefslogtreecommitdiffstats
path: root/ProcessList.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-10-21 21:26:09 +0200
committercgzones <cgzones@googlemail.com>2020-10-26 19:30:38 +0100
commita3bb7cbe649d9c718b65aded4c6b2445ff5d20d5 (patch)
tree0777ed5bf2fe322227fe114cd1126ab77bc8ccf1 /ProcessList.c
parent4eb443926f9944f4c100b1aabfb5553cbbd98874 (diff)
Hold only a const version of Settings in ProcessList
Diffstat (limited to 'ProcessList.c')
-rw-r--r--ProcessList.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/ProcessList.c b/ProcessList.c
index f2cdcf94..dac86cb8 100644
--- a/ProcessList.c
+++ b/ProcessList.c
@@ -67,7 +67,7 @@ void ProcessList_setPanel(ProcessList* this, Panel* panel) {
void ProcessList_printHeader(ProcessList* this, RichString* header) {
RichString_prune(header);
- ProcessField* fields = this->settings->fields;
+ const ProcessField* fields = this->settings->fields;
for (int i = 0; fields[i]; i++) {
const char* field = Process_fields[fields[i]].title;
if (!field) field = "- ";
@@ -142,20 +142,21 @@ static void ProcessList_buildTree(ProcessList* this, pid_t pid, int level, int i
Vector_delete(children);
}
+static long ProcessList_treeProcessCompare(const void* v1, const void* v2) {
+ const Process *p1 = (const Process*)v1;
+ const Process *p2 = (const Process*)v2;
+
+ return p1->pid - p2->pid;
+}
+
void ProcessList_sort(ProcessList* this) {
if (!this->settings->treeView) {
Vector_insertionSort(this->processes);
} else {
// Save settings
int direction = this->settings->direction;
- int sortKey = this->settings->sortKey;
// Sort by PID
- this->settings->sortKey = PID;
- this->settings->direction = 1;
- Vector_quickSort(this->processes);
- // Restore settings
- this->settings->sortKey = sortKey;
- this->settings->direction = direction;
+ Vector_quickSortCustomCompare(this->processes, ProcessList_treeProcessCompare);
int vsize = Vector_size(this->processes);
// Find all processes whose parent is not visible
int size;
@@ -214,7 +215,7 @@ void ProcessList_sort(ProcessList* this) {
ProcessField ProcessList_keyAt(ProcessList* this, int at) {
int x = 0;
- ProcessField* fields = this->settings->fields;
+ const ProcessField* fields = this->settings->fields;
ProcessField field;
for (int i = 0; (field = fields[i]); i++) {
const char* title = Process_fields[field].title;

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