--- gtk/channel-main.c | 4 ++-- gtk/spice-widget.c | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gtk/channel-main.c b/gtk/channel-main.c index 9e97b8b..3c173c6 100644 --- a/gtk/channel-main.c +++ b/gtk/channel-main.c @@ -1829,7 +1829,7 @@ gboolean spice_main_agent_test_capability(SpiceMainChannel *channel, guint32 cap /** * spice_main_set_display: * @channel: - * @id: display channel ID + * @id: display ID * @x: x position * @y: y position * @width: display width @@ -2013,7 +2013,7 @@ void spice_main_clipboard_selection_request(SpiceMainChannel *channel, guint sel /** * spice_main_set_display_enabled: * @channel: a #SpiceMainChannel - * @id: display channel ID (if -1: set all displays) + * @id: display ID (if -1: set all displays) * @enabled: wether display @id is enabled * * When sending monitor configuration to agent guest, don't set diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c index f640fae..0ab00fe 100644 --- a/gtk/spice-widget.c +++ b/gtk/spice-widget.c @@ -779,6 +779,19 @@ static void update_mouse_grab(SpiceDisplay *display) try_mouse_ungrab(display); } +static gint get_display_id(SpiceDisplay *display) +{ + SpiceDisplayPrivate *d = SPICE_DISPLAY_GET_PRIVATE(display); + + /* supported monitor_id only with display channel #0 */ + if (d->channel_id == 0 && d->monitor_id >= 0) + return d->monitor_id; + + g_return_val_if_fail(d->monitor_id <= 0, -1); + + return d->channel_id; +} + static void recalc_geometry(GtkWidget *widget) { SpiceDisplay *display = SPICE_DISPLAY(widget); @@ -800,7 +813,7 @@ static void recalc_geometry(GtkWidget *widget) d->ww, d->wh, zoom, d->mx, d->my); if (d->resize_guest_enable) - spice_main_set_display(d->main, d->channel_id, + spice_main_set_display(d->main, get_display_id(display), 0, 0, d->ww / zoom, d->wh / zoom); } @@ -1687,7 +1700,7 @@ static void mark(SpiceChannel *channel, gint mark, gpointer data) SPICE_DEBUG("widget mark: %d, channel %d", mark, d->channel_id); d->mark = mark; - spice_main_set_display_enabled(d->main, d->channel_id, d->mark != 0); + spice_main_set_display_enabled(d->main, get_display_id(display), d->mark != 0); if (mark != 0 && gtk_widget_get_window(GTK_WIDGET(display))) gtk_widget_queue_draw(GTK_WIDGET(display)); } -- 1.7.10.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel