diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2019-02-16 16:14:27 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2019-02-16 16:14:27 -0500 |
| commit | db9eb68a3d28ba308dbff6feaa2603bebfa3a0f0 (patch) | |
| tree | d3e04758fdae3d5a9c452d5326afcbdc26af8fb1 /include | |
| parent | e1d09de4c6a71905198ef2cfa0cd2a91deb69c83 (diff) | |
Fix reload freeze when not modsetting current mode
This fixes the issue of the display freezing on reload with
wlroots#1545.
On master, all output configs are applied on reload. This may cause an
output to have its config applied up to three times, instead of just
once. The three cases are: output name, output identifier, and wildcard.
Not only is this inefficient, but it can cause swaybg to be spawned and
immediately killed.
However, swaybg requires two roundtrips of wl_display (to obtain needed
globals) before it enters its normal event loop. Modesetting will
roundtrip the wl_display. Without modesetting, waitpid for killing
swaybg could block infinitely due to swaybg being blocked by
wl_display_roundtrip.
This only configured an output once. It either uses the wildcard config
or creates an empty wildcard config and applies that. This also fixes a
bug where an output would not be reset when there is no output config to
apply to it.
Diffstat (limited to 'include')
| -rw-r--r-- | include/sway/config.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sway/config.h b/include/sway/config.h index 43ea7778..54cdcc90 100644 --- a/include/sway/config.h +++ b/include/sway/config.h @@ -586,6 +586,8 @@ struct output_config *store_output_config(struct output_config *oc); void apply_output_config_to_outputs(struct output_config *oc); +void reset_outputs(void); + void free_output_config(struct output_config *oc); int workspace_output_cmp_workspace(const void *a, const void *b); |
