----- Mensaje original -----
> Both the spice-widget code, as well as remote-viewer expect that
> monitors[i]->id == i, but if ie only the qxl-0 and qxl-2 outputs are
> enabled this is not true.
> 
> I've chosen to fix this by making this assumption true. This does
> mean

Your explanation is misleading, we don't know what monitors[] you are talking 
about. There is no such "expectation" in the code, ie nothing bad will happen:

For spice-gtk, the SpiceDisplay monitor_id is an index to the 
SpiceDisplayChannel:monitors. It doesn't look for the matching 
SpiceDisplayMonitorConfig->id.

Regarding virt-viewer, it builds a new "sparse" array:

    g_ptr_array_set_size(displays, monitors_max);

    for (i = 0; i < monitors_max; i++) {
        display = g_ptr_array_index(displays, i);
        if (display == NULL) {
            display = virt_viewer_display_spice_new(self, channel, i);

So this time, and only there, monitors[i]->id == i.

There is no rule about monitor id and disabled monitor handling on the 
VDAgentMonitorsConfig, and the matching agent behaviour implementation, which 
you are changing in the following patch.

> that the monitors array can now contain 0x0 sized (iow disabled)
> monitors,
> remote-viewer already checks for this.

Yes, because it builds its own array.

> Thus this patch:
> 1) Makes the monitors[i]->id == i assumption be true

No need for changing that.

> 2) Makes spice-widget check for 0x0 sized monitors and treat them as
> disabled

Nor that.

Nack.
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to