Merge pull request #5355 from orestisfl/5346/do-not-canonicalize-nonprimary

Do not canonicalize "nonprimary" output for i3bar
This commit is contained in:
Orestis Floros 2023-01-07 10:02:45 +01:00 committed by GitHub
commit 9c8746c00f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 2 deletions

View File

@ -0,0 +1 @@
fix regression with i3bar's output nonprimary

View File

@ -739,7 +739,7 @@ static void dump_bar_bindings(yajl_gen gen, Barconfig *config) {
static char *canonicalize_output_name(char *name) { static char *canonicalize_output_name(char *name) {
/* Do not canonicalize special output names. */ /* Do not canonicalize special output names. */
if (strcasecmp(name, "primary") == 0) { if (strcasecmp(name, "primary") == 0 || strcasecmp(name, "nonprimary") == 0) {
return name; return name;
} }
Output *output = get_output_by_name(name, false); Output *output = get_output_by_name(name, false);

View File

@ -17,8 +17,10 @@
# Tests that i3bars configured to use the primary output do not have # Tests that i3bars configured to use the primary output do not have
# their output names canonicalized to something other than "primary". # their output names canonicalized to something other than "primary".
# Ticket: #2948 # Ticket: #2948
# Ticket: #5346
# Bug still in: 4.14-93-ga3a7d04a # Bug still in: 4.14-93-ga3a7d04a
use i3test i3_config => <<EOT; use i3test i3_autostart => 0;
my $config = <<EOT;
# i3 config file (v4) # i3 config file (v4)
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
@ -28,6 +30,7 @@ bar {
output primary output primary
} }
EOT EOT
my $pid = launch_with_config($config);
my $bars = i3->get_bar_config()->recv; my $bars = i3->get_bar_config()->recv;
is(@$bars, 1, 'one bar configured'); 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; my $bar_config = i3->get_bar_config($bar_id)->recv;
is_deeply($bar_config->{outputs}, [ "primary" ], 'bar_config output is primary'); 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; done_testing;