[Spice-commits] gtk/channel-main.c
Hans de Goede
jwrdegoede at kemper.freedesktop.org
Thu Jan 10 00:38:35 PST 2013
gtk/channel-main.c | 5 +++++
1 file changed, 5 insertions(+)
New commits:
commit baf7b6d8820d83e85603083b47e31cde08a39ac0
Author: Hans de Goede <hdegoede at redhat.com>
Date: Wed Jan 9 19:33:02 2013 +0100
Send monitor config to the agent on spice_main_set_display_enabled (#881072)
Currently we send an updated monitor-config to the agent whenever some
of the display settings are changed (whenever spice_main_set_display is
called), including when a new display is enabled, as that involves
creating a new window, which calls spice_main_set_display. The only
exception to this is when a display gets disabled.
This is rather inconistent, it causes the user to be able to move windows
in the guest to the now no longer visible monitor, and any windows which
were already there are hidden... until something else triggers us sending
updated monitor info. Withe gnome3 an alt-tab away and back again from a still
open display-window is enough to trigger the update, and then the guest will
all of a sudden become aware of the monitor no longer being there and
re-arrange windows accordingly, on an alt-tab in the client machine ...
not pretty.
So lets make things consistent and also send the agent updated monitor info
from spice_main_set_display_enabled, like we already do from
spice_main_set_display.
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
diff --git a/gtk/channel-main.c b/gtk/channel-main.c
index 6b9ba8d..653b989 100644
--- a/gtk/channel-main.c
+++ b/gtk/channel-main.c
@@ -2245,4 +2245,9 @@ void spice_main_set_display_enabled(SpiceMainChannel *channel, int id, gboolean
g_return_if_fail(id < G_N_ELEMENTS(c->display));
c->display[id].enabled = enabled;
}
+
+ if (c->timer_id) {
+ g_source_remove(c->timer_id);
+ }
+ c->timer_id = g_timeout_add_seconds(1, timer_set_display, channel);
}
More information about the Spice-commits
mailing list