aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-curses/curses-info-popup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface-curses/curses-info-popup.c')
-rw-r--r--src/interface-curses/curses-info-popup.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/interface-curses/curses-info-popup.c b/src/interface-curses/curses-info-popup.c
index a738f5d..e6e1549 100644
--- a/src/interface-curses/curses-info-popup.c
+++ b/src/interface-curses/curses-info-popup.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012-2023 Robin Haberkorn
+ * Copyright (C) 2012-2024 Robin Haberkorn
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -28,6 +28,7 @@
#include "interface.h"
#include "curses-utils.h"
#include "curses-info-popup.h"
+#include "curses-icons.h"
/*
* FIXME: This is redundant with gtk-info-popup.c.
@@ -75,8 +76,13 @@ teco_curses_info_popup_init_pad(teco_curses_info_popup_t *ctx, attr_t attr)
gint pad_cols; /**! entry columns */
gint pad_colwidth; /**! width per entry column */
- /* reserve 2 spaces between columns */
- pad_colwidth = MIN(ctx->longest + 2, cols - 2);
+ /*
+ * With Unicode icons enabled, we reserve 2 characters at the beginning and one
+ * after the filename/directory.
+ * Otherwise 2 characters after the entry.
+ */
+ gint reserve = teco_ed & TECO_ED_ICONS ? 2+1 : 2;
+ pad_colwidth = MIN(ctx->longest + reserve, cols - 2);
/* pad_cols = floor((cols - 2) / pad_colwidth) */
pad_cols = (cols - 2) / pad_colwidth;
@@ -111,8 +117,19 @@ teco_curses_info_popup_init_pad(teco_curses_info_popup_t *ctx, attr_t attr)
switch (entry->type) {
case TECO_POPUP_FILE:
+ g_assert(!teco_string_contains(&entry->name, '\0'));
+ if (teco_ed & TECO_ED_ICONS) {
+ teco_curses_add_wc(ctx->pad, teco_curses_icons_lookup_file(entry->name.data));
+ waddch(ctx->pad, ' ');
+ }
+ teco_curses_format_filename(ctx->pad, entry->name.data, -1);
+ break;
case TECO_POPUP_DIRECTORY:
g_assert(!teco_string_contains(&entry->name, '\0'));
+ if (teco_ed & TECO_ED_ICONS) {
+ teco_curses_add_wc(ctx->pad, teco_curses_icons_lookup_dir(entry->name.data));
+ waddch(ctx->pad, ' ');
+ }
teco_curses_format_filename(ctx->pad, entry->name.data, -1);
break;
default: