Merge pull request #2221 from Airblader/bug-2220
Revert e2e7b7 and remove unreachable fallback code
This commit is contained in:
commit
eb631ce3c3
|
@ -165,7 +165,6 @@ bindsym Mod1+r mode "resize"
|
||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
bar {
|
bar {
|
||||||
status_command i3status
|
status_command i3status
|
||||||
tray_output primary
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
|
@ -152,5 +152,4 @@ bindcode $mod+27 mode "resize"
|
||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
bar {
|
bar {
|
||||||
status_command i3status
|
status_command i3status
|
||||||
tray_output primary
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -769,19 +769,9 @@ static void handle_client_message(xcb_client_message_event_t *event) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether any "tray_output primary" was defined for this bar. */
|
/* If no tray_output has been specified, we fall back to the first
|
||||||
bool contains_primary = false;
|
* available output. */
|
||||||
TAILQ_FOREACH(tray_output, &(config.tray_outputs), tray_outputs) {
|
if (output == NULL && TAILQ_EMPTY(&(config.tray_outputs))) {
|
||||||
if (strcasecmp("primary", tray_output->output) == 0) {
|
|
||||||
contains_primary = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* In case of tray_output == primary and there is no primary output
|
|
||||||
* configured, we fall back to the first available output. We do the
|
|
||||||
* same if no tray_output was specified. */
|
|
||||||
if (output == NULL && (contains_primary || TAILQ_EMPTY(&(config.tray_outputs)))) {
|
|
||||||
SLIST_FOREACH(walk, outputs, slist) {
|
SLIST_FOREACH(walk, outputs, slist) {
|
||||||
if (!walk->active)
|
if (!walk->active)
|
||||||
continue;
|
continue;
|
||||||
|
@ -790,6 +780,7 @@ static void handle_client_message(xcb_client_message_event_t *event) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (output == NULL) {
|
if (output == NULL) {
|
||||||
ELOG("No output found\n");
|
ELOG("No output found\n");
|
||||||
return;
|
return;
|
||||||
|
@ -1770,16 +1761,35 @@ void reconfig_windows(bool redraw_bars) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unless "tray_output none" was specified, we need to initialize the tray. */
|
/* Unless "tray_output none" was specified, we need to initialize the tray. */
|
||||||
const char *first = (TAILQ_EMPTY(&(config.tray_outputs))) ? SLIST_FIRST(outputs)->name : TAILQ_FIRST(&(config.tray_outputs))->output;
|
bool no_tray = false;
|
||||||
if (!tray_configured && strcasecmp(first, "none") != 0) {
|
if (!(TAILQ_EMPTY(&(config.tray_outputs)))) {
|
||||||
/* We do a sanity check here to ensure that this i3bar instance actually handles
|
no_tray = strcasecmp(TAILQ_FIRST(&(config.tray_outputs))->output, "none") == 0;
|
||||||
* the output on which the tray should appear. For example,
|
}
|
||||||
* consider tray_output == [VGA-1], but output == [HDMI-1]. */
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* There are three scenarios in which we need to initialize the tray:
|
||||||
|
* 1. A specific output was listed in tray_outputs which is also
|
||||||
|
* in the list of outputs managed by this bar.
|
||||||
|
* 2. No tray_output directive was specified. In this case, we
|
||||||
|
* use the first available output.
|
||||||
|
* 3. 'tray_output primary' was specified. In this case we use the
|
||||||
|
* primary output.
|
||||||
|
*
|
||||||
|
* Three scenarios in which we specifically don't want to
|
||||||
|
* initialize the tray are:
|
||||||
|
* 1. 'tray_output none' was specified.
|
||||||
|
* 2. A specific output was listed as a tray_output, but is not
|
||||||
|
* one of the outputs managed by this bar. For example, consider
|
||||||
|
* tray_outputs == [VGA-1], but outputs == [HDMI-1].
|
||||||
|
* 3. 'tray_output primary' was specified and no output in the list
|
||||||
|
* is primary.
|
||||||
|
*/
|
||||||
|
if (!tray_configured && !no_tray) {
|
||||||
/* If no tray_output was specified, we go ahead and initialize the tray as
|
/* If no tray_output was specified, we go ahead and initialize the tray as
|
||||||
* we will be using the first available output. */
|
* we will be using the first available output. */
|
||||||
if (TAILQ_EMPTY(&(config.tray_outputs)))
|
if (TAILQ_EMPTY(&(config.tray_outputs))) {
|
||||||
init_tray();
|
init_tray();
|
||||||
|
}
|
||||||
|
|
||||||
/* If one or more tray_output assignments were specified, we ensure that at least one of
|
/* If one or more tray_output assignments were specified, we ensure that at least one of
|
||||||
* them is actually an output managed by this instance. */
|
* them is actually an output managed by this instance. */
|
||||||
|
|
Loading…
Reference in New Issue