summaryrefslogtreecommitdiffstats
path: root/Panel.c
diff options
context:
space:
mode:
authorChristian Göttsche <cgzones@googlemail.com>2020-12-22 17:12:38 +0100
committercgzones <cgzones@googlemail.com>2020-12-23 12:47:04 +0100
commit86d293125565a15bbd94683080dbc755c5d7edee (patch)
treeb0a2f530cc5f633bebdf22124d8ce2d91ecf765b /Panel.c
parent0672be7db1ed50fceff0619e1411b510aa11f0f7 (diff)
Restore highlighted header of current sorted process column
Diffstat (limited to 'Panel.c')
-rw-r--r--Panel.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/Panel.c b/Panel.c
index b36f1efc..26a0c0ec 100644
--- a/Panel.c
+++ b/Panel.c
@@ -76,13 +76,6 @@ void Panel_setSelectionColor(Panel* this, ColorElements colorId) {
this->selectionColorId = colorId;
}
-RichString* Panel_getHeader(Panel* this) {
- assert (this != NULL);
-
- this->needsRedraw = true;
- return &(this->header);
-}
-
inline void Panel_setHeader(Panel* this, const char* header) {
RichString_writeWide(&(this->header), CRT_colors[PANEL_HEADER_FOCUS], header);
this->needsRedraw = true;
@@ -228,15 +221,20 @@ void Panel_draw(Panel* this, bool force_redraw, bool focus, bool highlightSelect
int x = this->x;
int h = this->h;
+ const int header_attr = focus
+ ? CRT_colors[PANEL_HEADER_FOCUS]
+ : CRT_colors[PANEL_HEADER_UNFOCUS];
+ if (force_redraw) {
+ if (Panel_printHeaderFn(this))
+ Panel_printHeader(this);
+ else
+ RichString_setAttr(&this->header, header_attr);
+ }
int headerLen = RichString_sizeVal(this->header);
if (headerLen > 0) {
- int attr = focus
- ? CRT_colors[PANEL_HEADER_FOCUS]
- : CRT_colors[PANEL_HEADER_UNFOCUS];
- attrset(attr);
+ attrset(header_attr);
mvhline(y, x, ' ', this->w);
if (scrollH < headerLen) {
- RichString_setAttr(&this->header, attr);
RichString_printoffnVal(this->header, y, x, scrollH,
MINIMUM(headerLen - scrollH, this->w));
}

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