aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrestis Floros <orestisflo@gmail.com>2023-01-07 10:02:45 +0100
committerGitHub <noreply@github.com>2023-01-07 10:02:45 +0100
commit9c8746c00fee18561e2a0a039d9b1c7387b848c5 (patch)
tree6317f34abeb1b48978baf1d59885f3a48d97030c
parent46de32eedda26ecace895a00c8dde56131282694 (diff)
parentfa25afedd26dac12907f4af9c6f0b2ddf1cbbf2f (diff)
downloadi3-9c8746c00fee18561e2a0a039d9b1c7387b848c5.tar.gz
i3-9c8746c00fee18561e2a0a039d9b1c7387b848c5.zip
Merge pull request #5355 from orestisfl/5346/do-not-canonicalize-nonprimary
Do not canonicalize "nonprimary" output for i3bar
-rw-r--r--release-notes/bugfixes/1-i3bar-nonprimary1
-rw-r--r--src/ipc.c2
-rw-r--r--testcases/t/538-i3bar-primary-output.t29
3 files changed, 30 insertions, 2 deletions
diff --git a/release-notes/bugfixes/1-i3bar-nonprimary b/release-notes/bugfixes/1-i3bar-nonprimary
new file mode 100644
index 00000000..b787a5a6
--- /dev/null
+++ b/release-notes/bugfixes/1-i3bar-nonprimary
@@ -0,0 +1 @@
+fix regression with i3bar's output nonprimary
diff --git a/src/ipc.c b/src/ipc.c
index f69ba2ae..28a86092 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 249d5777..d5581dd8 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 => <<EOT;
+use i3test i3_autostart => 0;
+my $config = <<EOT;
# i3 config file (v4)
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
@@ -28,6 +30,7 @@ bar {
output primary
}
EOT
+my $pid = launch_with_config($config);
my $bars = i3->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 = <<EOT;
+# i3 config file (v4)
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+
+fake-outputs 1024x768+0+0P,1024x768+0+0
+
+bar {
+ output nonprimary
+}
+EOT
+$pid = launch_with_config($config);
+
+$bars = i3->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;