Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
alsa-utils
0001-alsamixer-Fix-regression-in-color-setup.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-alsamixer-Fix-regression-in-color-setup.patch of Package alsa-utils
From 40202a522aa86599bffaabf8097bf9bf1cef4f61 Mon Sep 17 00:00:00 2001 From: Takashi Iwai <tiwai@suse.de> Date: Thu, 20 Jan 2022 08:49:17 +0100 Subject: [PATCH] alsamixer: Fix regression in color setup The recent change to add the background config broke the color setup via the config file due. Fix the regression by restoring the initialization order back again, and changing the logic for the default background color to be re-initializing color pairs instead. Link: https://github.com/alsa-project/alsa-utils/issues/137 Signed-off-by: Takashi Iwai <tiwai@suse.de> --- alsamixer/cli.c | 8 ++++---- alsamixer/colors.c | 13 ++++++++++++- alsamixer/colors.h | 2 +- alsamixer/configparser.c | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/alsamixer/cli.c b/alsamixer/cli.c index 63c4949bab96..f153f280cd9f 100644 --- a/alsamixer/cli.c +++ b/alsamixer/cli.c @@ -152,15 +152,15 @@ int main(int argc, char *argv[]) parse_options(argc, argv); + create_mixer_object(&selem_regopt); + + initialize_curses(use_color, use_mouse); + if (config_file == CONFIG_DEFAULT) parse_default_config_file(); else if (config_file) parse_config_file(config_file); - create_mixer_object(&selem_regopt); - - initialize_curses(use_color, use_mouse); - create_mixer_widget(); mainloop(); diff --git a/alsamixer/colors.c b/alsamixer/colors.c index f76dc26ef380..cca5233e82cd 100644 --- a/alsamixer/colors.c +++ b/alsamixer/colors.c @@ -23,7 +23,7 @@ #include "colors.h" struct attributes attrs; -short background_color = -1; +static short background_color = -1; int get_color_pair(short fg, short bg) { @@ -45,6 +45,17 @@ int get_color_pair(short fg, short bg) return 0; } +void reinit_colors(short bg) +{ + if (bg == background_color) + return; + init_pair(1, COLOR_CYAN, bg); + init_pair(2, COLOR_YELLOW, bg); + init_pair(4, COLOR_RED, bg); + init_pair(5, COLOR_WHITE, bg); + background_color = bg; +} + void init_colors(int use_color) { if (!!has_colors() == !!use_color) { diff --git a/alsamixer/colors.h b/alsamixer/colors.h index 1c7bff8e7d32..ac404e9ccc16 100644 --- a/alsamixer/colors.h +++ b/alsamixer/colors.h @@ -34,9 +34,9 @@ struct attributes { }; extern struct attributes attrs; -extern short background_color; void init_colors(int use_color); +void reinit_colors(short bg); int get_color_pair(short fg, short bg); #endif diff --git a/alsamixer/configparser.c b/alsamixer/configparser.c index 4396d4ff302e..b2b55f4754bc 100644 --- a/alsamixer/configparser.c +++ b/alsamixer/configparser.c @@ -451,7 +451,7 @@ static int cfg_set(char **argv, unsigned int argc) error_cause = argv[1]; return ERROR_CONFIG; } - background_color = bg_color; + reinit_colors(bg_color); } else { error_message = _("unknown option"); -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor