void RedClient::handle_init(RedPeer::InMessage* message) { SpiceMsgMainInit *init = (SpiceMsgMainInit *)message->data(); LOG_INFO(""); _connection_id = init->session_id; set_mm_time(init->multi_media_time); if (!_during_migration) { calc_pixmap_cach_and_glz_window_size(init->display_channels_hint, init->ram_hint); } set_mouse_mode(init->supported_mouse_modes, init->current_mouse_mode); _agent_tokens = init->agent_tokens; _agent_connected = !!init->agent_connected; if (_agent_connected) { Message* msg = new Message(SPICE_MSGC_MAIN_AGENT_START); SpiceMsgcMainAgentStart agent_start; agent_start.num_tokens = ~0; _marshallers->msgc_main_agent_start(msg->marshaller(), &agent_start); post_message(msg); send_agent_announce_capabilities(true); } if (!_during_migration) { if (!init_guest_display()) { send_main_attach_channels(); } } else { LOG_INFO("connecting all channels after migration"); Channels::iterator iter = _channels.begin(); for (; iter != _channels.end(); ++iter) { (*iter)->connect_migration_target(); } _during_migration = false; } }
void RedClient::handle_mouse_mode(RedPeer::InMessage* message) { SpiceMsgMainMouseMode *mouse_mode = (SpiceMsgMainMouseMode *)message->data(); set_mouse_mode(mouse_mode->supported_modes, mouse_mode->current_mode); }
void MouseSettings::SetMouseMode(mode_mouse mode) { set_mouse_mode(mode); fMode = mode; }