----- 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 Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel