diff options
Diffstat (limited to 'server/reds.c')
-rw-r--r-- | server/reds.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/server/reds.c b/server/reds.c index a8083905..1521bc52 100644 --- a/server/reds.c +++ b/server/reds.c @@ -751,7 +751,7 @@ static void reds_disconnect() if (sif->state) { sif->state(vdagent, reds->agent_state.connected); } - reds_reset_vdp(); + reds->agent_state.client_agent_started = FALSE; } reds_shatdown_channels(); @@ -1099,13 +1099,16 @@ static void reds_agent_remove() SpiceCharDeviceInstance *sin = vdagent; SpiceCharDeviceInterface *sif; + if (!reds->mig_target) { + reds_reset_vdp(); + } + if (!reds->agent_state.connected) { return; } reds->agent_state.connected = 0; vdagent = NULL; reds_update_mouse_mode(); - if (!reds->peer || !sin) { return; } @@ -1117,7 +1120,6 @@ static void reds_agent_remove() if (reds->mig_target) { return; } - reds_reset_vdp(); reds_send_agent_disconnected(); } |