aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Gilg <subdiff@gmail.com>2020-10-01 14:32:57 +0200
committerSimon Ser <contact@emersion.fr>2020-10-09 16:28:09 +0200
commit86c0b9986b82a477dea7e6029c0fe565dd7af429 (patch)
tree33f6f739c17a105db143a07f0a06a5d1e99611fa
parent8dec751a6d84335fb04288b8efab6dd5c90288d3 (diff)
output-management-v1: send complete head state on enable change
The data of a head is only sent when it is enabled. While the head was disabled data might have been changed. In this case clients were not informed about this change. A later enable change that does not also update the other data must still lead to the propagation of this data. Since we do not know what other data was changed while the head was disabled just send together with an enable change all current data.
-rw-r--r--types/wlr_output_management_v1.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/types/wlr_output_management_v1.c b/types/wlr_output_management_v1.c
index ae20e0d7..728abee7 100644
--- a/types/wlr_output_management_v1.c
+++ b/types/wlr_output_management_v1.c
@@ -680,6 +680,9 @@ static void head_send_state(struct wlr_output_head_v1 *head,
if (state & HEAD_STATE_ENABLED) {
zwlr_output_head_v1_send_enabled(head_resource, head->state.enabled);
+ // On enabling we send all current data since clients have not been
+ // notified about potential data changes while the head was disabled.
+ state = HEAD_STATE_ALL;
}
if (!head->state.enabled) {