From cdda5ab759b0e19fc619873c1ead15709f970c65 Mon Sep 17 00:00:00 2001 From: vague666 Date: Wed, 19 Jan 2022 13:09:49 +0100 Subject: [PATCH 1/5] Make actlist separator a setting --- src/fe-text/statusbar-items.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 47b31103..8f479fa1 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -75,13 +75,14 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) GString *str; GString *format; GList *tmp; - char *ret, *name, *value; + char *ret, *name, *value, *separator; int is_det; int add_name = settings_get_bool("actlist_names"); int pref_name = settings_get_bool("actlist_prefer_window_name"); str = g_string_new(NULL); format = g_string_new(NULL); + separator = settings_get_str("actlist_separator"); theme = window != NULL && window->active != NULL && window->active->theme != NULL ? @@ -96,7 +97,8 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) /* comma separator */ if (str->len > 0) { - value = theme_format_expand(theme, "{sb_act_sep ,}"); + g_string_printf(format, "{sb_act_sep %s}", strlen(separator) > 0 ? separator : ","); + value = theme_format_expand(theme, format->str); g_string_append(str, value); g_free(value); } @@ -462,6 +464,7 @@ void statusbar_items_init(void) settings_add_time("misc", "lag_min_show", "1sec"); settings_add_choice("lookandfeel", "actlist_sort", 0, "refnum;recent;level;level,recent"); settings_add_bool("lookandfeel", "actlist_names", FALSE); + settings_add_str("lookandfeel", "actlist_separator", ","); settings_add_bool("lookandfeel", "actlist_prefer_window_name", FALSE); statusbar_item_register("window", NULL, item_window_active); From de626250b59a1acdab41d4b96a7840536e60aadc Mon Sep 17 00:00:00 2001 From: vague666 Date: Wed, 19 Jan 2022 18:01:30 +0100 Subject: [PATCH 2/5] Added statusbar_items_redraw code --- src/fe-text/statusbar-items.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 8f479fa1..560e159f 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -33,6 +33,7 @@ static GList *activity_list; static guint8 actlist_sort; +static char *actlist_separator; static GSList *more_visible; /* list of MAIN_WINDOW_RECs which have --more-- */ static GHashTable *input_entries; static int last_lag, last_lag_unknown, lag_timeout_tag; @@ -75,14 +76,13 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) GString *str; GString *format; GList *tmp; - char *ret, *name, *value, *separator; + char *ret, *name, *value; int is_det; int add_name = settings_get_bool("actlist_names"); int pref_name = settings_get_bool("actlist_prefer_window_name"); str = g_string_new(NULL); format = g_string_new(NULL); - separator = settings_get_str("actlist_separator"); theme = window != NULL && window->active != NULL && window->active->theme != NULL ? @@ -97,7 +97,7 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) /* comma separator */ if (str->len > 0) { - g_string_printf(format, "{sb_act_sep %s}", strlen(separator) > 0 ? separator : ","); + g_string_printf(format, "{sb_act_sep %s}", strlen(actlist_separator) > 0 ? actlist_separator : ","); value = theme_format_expand(theme, format->str); g_string_append(str, value); g_free(value); @@ -457,6 +457,11 @@ static void read_settings(void) gui_entry_set_utf8(active_entry, term_type == TERM_TYPE_UTF8); actlist_sort = settings_get_choice("actlist_sort"); + + if(g_strcmp0(actlist_separator, settings_get_str("actlist_separator")) != 0) { + actlist_separator = settings_get_str("actlist_separator"); + statusbar_items_redraw("act"); + } } void statusbar_items_init(void) From d6b55c6d43ef3c20d1ac889e3c8934ed6e5b4976 Mon Sep 17 00:00:00 2001 From: vague666 Date: Mon, 31 Jan 2022 10:36:57 +0100 Subject: [PATCH 3/5] Make redrawing of item actually work --- src/fe-text/statusbar-items.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 560e159f..5a2a4ed1 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -453,13 +453,16 @@ static void item_input(SBAR_ITEM_REC *item, int get_size_only) static void read_settings(void) { + const char *sep; if (active_entry != NULL) gui_entry_set_utf8(active_entry, term_type == TERM_TYPE_UTF8); actlist_sort = settings_get_choice("actlist_sort"); - if(g_strcmp0(actlist_separator, settings_get_str("actlist_separator")) != 0) { - actlist_separator = settings_get_str("actlist_separator"); + sep = settings_get_str("actlist_separator"); + if(g_strcmp0(actlist_separator, sep) != 0) { + g_free(actlist_separator); + actlist_separator = g_strdup(sep); statusbar_items_redraw("act"); } } From 089cab715f62897f5905629198dcbdc58871b85b Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Sun, 6 Feb 2022 02:27:36 +0100 Subject: [PATCH 4/5] fix formatting --- src/fe-text/statusbar-items.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 5a2a4ed1..638827fd 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -97,7 +97,8 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) /* comma separator */ if (str->len > 0) { - g_string_printf(format, "{sb_act_sep %s}", strlen(actlist_separator) > 0 ? actlist_separator : ","); + g_string_printf(format, "{sb_act_sep %s}", + strlen(actlist_separator) > 0 ? actlist_separator : ","); value = theme_format_expand(theme, format->str); g_string_append(str, value); g_free(value); @@ -460,7 +461,7 @@ static void read_settings(void) actlist_sort = settings_get_choice("actlist_sort"); sep = settings_get_str("actlist_separator"); - if(g_strcmp0(actlist_separator, sep) != 0) { + if (g_strcmp0(actlist_separator, sep) != 0) { g_free(actlist_separator); actlist_separator = g_strdup(sep); statusbar_items_redraw("act"); From 32ab41625ffb2e203a24ee24f321437980dd774a Mon Sep 17 00:00:00 2001 From: Ailin Nemui Date: Sun, 6 Feb 2022 09:50:38 +0100 Subject: [PATCH 5/5] simplify code --- src/fe-text/statusbar-items.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/fe-text/statusbar-items.c b/src/fe-text/statusbar-items.c index 638827fd..6e7cf8a5 100644 --- a/src/fe-text/statusbar-items.c +++ b/src/fe-text/statusbar-items.c @@ -97,8 +97,7 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight) /* comma separator */ if (str->len > 0) { - g_string_printf(format, "{sb_act_sep %s}", - strlen(actlist_separator) > 0 ? actlist_separator : ","); + g_string_printf(format, "{sb_act_sep %s}", actlist_separator); value = theme_format_expand(theme, format->str); g_string_append(str, value); g_free(value);