<div dir="ltr">Hi,<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, May 16, 2015 at 7:38 AM, Dima Ryazanov <span dir="ltr"><<a href="mailto:dima@gmail.com" target="_blank">dima@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Add the output to the list when it's created rather than when its properties<br>
change (as pointed out by Marek Chalupa).<br>
Remove the output from the list when it's destroyed.<br>
<br>
Signed-off-by: Dima Ryazanov <<a href="mailto:dima@gmail.com">dima@gmail.com</a>><br>
---<br>
 hw/xwayland/xwayland-output.c | 5 +++--<br>
 1 file changed, 3 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/hw/xwayland/xwayland-output.c b/hw/xwayland/xwayland-output.c<br>
index 155cbc1..9baf4eb 100644<br>
--- a/hw/xwayland/xwayland-output.c<br>
+++ b/hw/xwayland/xwayland-output.c<br>
@@ -120,8 +120,6 @@ output_handle_done(void *data, struct wl_output *wl_output)<br>
     struct xwl_screen *xwl_screen = xwl_output->xwl_screen;<br>
     int width, height;<br>
<br>
-    xorg_list_append(&xwl_output->link, &xwl_screen->output_list);<br>
-<br></blockquote><div><br></div><div>As I pointed out in the other e-mail: I don't think this is right. The append is here on purpose to make the output update atomic.<br></div><div>But maybe somebody more erudated should review it :)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
     width = 0;<br>
     height = 0;<br>
     xorg_list_for_each_entry(xwl_output, &xwl_screen->output_list, link) {<br>
@@ -177,6 +175,8 @@ xwl_output_create(struct xwl_screen *xwl_screen, uint32_t id)<br>
     xwl_output->randr_crtc = RRCrtcCreate(xwl_screen->screen, xwl_output);<br>
     xwl_output->randr_output = RROutputCreate(xwl_screen->screen, name,<br>
                                               strlen(name), xwl_output);<br>
+    xorg_list_append(&xwl_output->link, &xwl_screen->output_list);<br>
+<br>
     RRCrtcGammaSetSize(xwl_output->randr_crtc, 256);<br>
     RROutputSetCrtcs(xwl_output->randr_output, &xwl_output->randr_crtc, 1);<br>
     RROutputSetConnection(xwl_output->randr_output, RR_Connected);<br>
@@ -190,6 +190,7 @@ xwl_output_destroy(struct xwl_output *xwl_output)<br>
     wl_output_destroy(xwl_output->output);<br>
     RRCrtcDestroy(xwl_output->randr_crtc);<br>
     RROutputDestroy(xwl_output->randr_output);<br>
+    xorg_list_del(&xwl_output->link);<br>
     free(xwl_output);<br>
 }<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.4.0<br>
<br>
</font></span></blockquote></div><br></div></div></div>