From 86d293125565a15bbd94683080dbc755c5d7edee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Tue, 22 Dec 2020 17:12:38 +0100 Subject: Restore highlighted header of current sorted process column --- Panel.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'Panel.c') 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)); } -- cgit v1.2.3