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)
|
||||
bar {
|
||||
status_command i3status
|
||||
tray_output primary
|
||||
}
|
||||
|
||||
#######################################################################
|
||||
|
|
|
@ -152,5 +152,4 @@ bindcode $mod+27 mode "resize"
|
|||
# finds out, if available)
|
||||
bar {
|
||||
status_command i3status
|
||||
tray_output primary
|
||||
}
|
||||
|
|
|
@ -769,19 +769,9 @@ static void handle_client_message(xcb_client_message_event_t *event) {
|
|||
break;
|
||||
}
|
||||
|
||||
/* Check whether any "tray_output primary" was defined for this bar. */
|
||||
bool contains_primary = false;
|
||||
TAILQ_FOREACH(tray_output, &(config.tray_outputs), 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)))) {
|
||||
/* If no tray_output has been specified, we fall back to the first
|
||||
* available output. */
|
||||
if (output == NULL && TAILQ_EMPTY(&(config.tray_outputs))) {
|
||||
SLIST_FOREACH(walk, outputs, slist) {
|
||||
if (!walk->active)
|
||||
continue;
|
||||
|
@ -790,6 +780,7 @@ static void handle_client_message(xcb_client_message_event_t *event) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (output == NULL) {
|
||||
ELOG("No output found\n");
|
||||
return;
|
||||
|
@ -1770,16 +1761,35 @@ void reconfig_windows(bool redraw_bars) {
|
|||
}
|
||||
|
||||
/* 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;
|
||||
if (!tray_configured && strcasecmp(first, "none") != 0) {
|
||||
/* We do a sanity check here to ensure that this i3bar instance actually handles
|
||||
* the output on which the tray should appear. For example,
|
||||
* consider tray_output == [VGA-1], but output == [HDMI-1]. */
|
||||
bool no_tray = false;
|
||||
if (!(TAILQ_EMPTY(&(config.tray_outputs)))) {
|
||||
no_tray = strcasecmp(TAILQ_FIRST(&(config.tray_outputs))->output, "none") == 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* 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
|
||||
* we will be using the first available output. */
|
||||
if (TAILQ_EMPTY(&(config.tray_outputs)))
|
||||
if (TAILQ_EMPTY(&(config.tray_outputs))) {
|
||||
init_tray();
|
||||
}
|
||||
|
||||
/* 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. */
|
||||
|
|
Loading…
Reference in New Issue