From c305798d42131e4231631547a42ac85e0d3b0f52 Mon Sep 17 00:00:00 2001 From: Orestis Floros Date: Fri, 6 Jan 2023 22:24:08 +0100 Subject: [PATCH] Do not canonicalize "nonprimary" output for i3bar Fixes #5346 --- src/ipc.c | 2 +- testcases/t/538-i3bar-primary-output.t | 29 +++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/ipc.c b/src/ipc.c index f69ba2ae9..28a86092f 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -739,7 +739,7 @@ static void dump_bar_bindings(yajl_gen gen, Barconfig *config) { static char *canonicalize_output_name(char *name) { /* Do not canonicalize special output names. */ - if (strcasecmp(name, "primary") == 0) { + if (strcasecmp(name, "primary") == 0 || strcasecmp(name, "nonprimary") == 0) { return name; } Output *output = get_output_by_name(name, false); diff --git a/testcases/t/538-i3bar-primary-output.t b/testcases/t/538-i3bar-primary-output.t index 249d57779..d5581dd81 100644 --- a/testcases/t/538-i3bar-primary-output.t +++ b/testcases/t/538-i3bar-primary-output.t @@ -17,8 +17,10 @@ # Tests that i3bars configured to use the primary output do not have # their output names canonicalized to something other than "primary". # Ticket: #2948 +# Ticket: #5346 # Bug still in: 4.14-93-ga3a7d04a -use i3test i3_config => < 0; +my $config = <get_bar_config()->recv; is(@$bars, 1, 'one bar configured'); @@ -36,5 +39,29 @@ my $bar_id = shift @$bars; my $bar_config = i3->get_bar_config($bar_id)->recv; is_deeply($bar_config->{outputs}, [ "primary" ], 'bar_config output is primary'); +exit_gracefully($pid); + +# Same but for "nonprimary" + +$config = <get_bar_config()->recv; +is(@$bars, 1, 'one bar configured'); + +$bar_id = shift @$bars; + +$bar_config = i3->get_bar_config($bar_id)->recv; +is_deeply($bar_config->{outputs}, [ "nonprimary" ], 'bar_config output is nonprimary'); +exit_gracefully($pid); done_testing;