<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 9, 2015 at 11:40 PM, Jonathon Jongsma <span dir="ltr"><<a href="mailto:jjongsma@redhat.com" target="_blank">jjongsma@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>When the server sends a new monitors config message to the client, it<br>
comes through the display channel. However, when the client wants to<br>
change the monitor config on the server, it does so via the main channel<br>
(i.e. the agent). The main channel keeps a set of structs that represent<br>
the current state each display. An application can update a single <br></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":413" class="a3s" style="overflow:hidden">
display by calling spice_main_update_display(). The main channel will<br>
update that particular struct and then schedule a new MonitorsConfig<br>
message based on the values of all of these structs. This generally<br>
works fine, but it relies on the application to remember to update each<br>
display properly. It would be less error-prone if <span class="il">spice</span>-<span class="il">gtk</span> tracked<br>
incoming display updates from the server rather than having <span class="il">spice</span>-<span class="il">gtk</span><br>
pass them up to the application and have the application pass them back<br>
down.<br></div></blockquote><div><br></div><div>That's simply because we shouldn't mix (unless it is somehow safe enough) what is the monitor config requested (main channel config), and what is the actual monitor config (display channels)<br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id=":413" class="a3s" style="overflow:hidden">
<br>
Note that when <span class="il">spice</span>-<span class="il">gtk</span> updates its internal state, it does not trigger<br>
a new monitor configuration to be sent down to the server. If the<br>
application wants to send down a new configuration, it still has to call<br>
spice_main_update_display() as before. This change simply means that the<br>
application won't need to call this function in response to<br>
informational updates from the server.</div></blockquote></div><br></div><div class="gmail_extra">It would change the user requested config if a display channel monitor config would reset it (on main channel) and the user would set/resize another monitor and send the last config for example.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">nack<br clear="all"></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature">Marc-André Lureau</div>
</div></div>