Hi, On Tue, Nov 10, 2015 at 02:05:23PM +0100, Marc-André Lureau wrote: > Hi > > On Tue, Nov 10, 2015 at 11:05 AM, Victor Toso <lists@xxxxxxxxxxxxxx> wrote: > > Hi, > > > > On Mon, Nov 09, 2015 at 03:02:07PM +0100, Marc-André Lureau wrote: > >> Send a SpiceMsgcMainMouseModeRequest message to request a mouse mode. > >> > >> This allows to switch between client/absolute and server/relative mouse > >> modes. > >> > >> This is necessary for some applications that require pointer > >> re-positioning, which we can't provide through a remote protocol easily > >> with client pointer (no such hardware-level message exists afaik). > > > > I've retested again in top of rhel7 server/qemu and upstream > > server/qemu. On rhel7, the mouse pointer barely moves and it goes back > > againt to its original position in top-left corner. On upstream, the > > mouse pointer does not move at all. > > Are you running the client in a vm? If yes, you can't use server-side > mouse this way, because there is no way for the client cursor to be > wrapped. > Please test server-side cursor mode on bare-metal. All tests client was on bare-metal, f23 with upstream client. rhel7 server is also bare-metal desktop with some VMs running. > > > I did not lose my pointer this time (I could toggle back with > > Shift+F12). > > > > All VMs has ps/2 device. The mouse pointer should keep moving, right? > > It needs -machine ..vmport=off to work properly as explained: > > http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=208abbcbd7b7225d4506cfbb230cb2cb3fce87f8 > Okay, I'll retest on rhel7 again but even with vmport=off, this still fails with upstream spice-server. Mouse pointer did not change: on client=host, upstream spice-server. Btw, your patches look good, I'm just trying to understand the change and check if there are any issues. Also, it would be nice to include the information regarding vmport=off requirement, maybe in the API. Do you think the mouse mode should still change if vmport=off is not set? Thanks, toso > > Some videos: > > http://people.freedesktop.org/~victortoso/videos/spice/ > > > > Cheers, > > Victor Toso > > > >> > >> Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > >> --- > >> doc/reference/spice-gtk-sections.txt | 1 + > >> src/channel-main.c | 29 +++++++++++++++++++++++++++++ > >> src/channel-main.h | 2 ++ > >> src/map-file | 1 + > >> src/spice-glib-sym-file | 1 + > >> 5 files changed, 34 insertions(+) > >> > >> diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt > >> index d8c4c79..9628471 100644 > >> --- a/doc/reference/spice-gtk-sections.txt > >> +++ b/doc/reference/spice-gtk-sections.txt > >> @@ -70,6 +70,7 @@ spice_main_update_display > >> spice_main_update_display_enabled > >> spice_main_send_monitor_config > >> spice_main_agent_test_capability > >> +spice_main_request_mouse_mode > >> spice_main_clipboard_selection_grab > >> spice_main_clipboard_selection_notify > >> spice_main_clipboard_selection_release > >> diff --git a/src/channel-main.c b/src/channel-main.c > >> index 0eb40b9..f4213d7 100644 > >> --- a/src/channel-main.c > >> +++ b/src/channel-main.c > >> @@ -1610,6 +1610,35 @@ static void agent_stopped(SpiceMainChannel *channel) > >> set_agent_connected(channel, FALSE); > >> } > >> > >> +/** > >> + * spice_main_request_mouse_mode: > >> + * @channel: a %SpiceMainChannel > >> + * @mode: a SPICE_MOUSE_MODE > >> + * > >> + * Request a mouse mode to the server. The server may not be able to > >> + * change the mouse mode, but spice-gtk will try to request it > >> + * when possible. > >> + * > >> + * Since: 0.31 > >> + **/ > >> +void spice_main_request_mouse_mode(SpiceMainChannel *channel, int mode) > >> +{ > >> + SpiceMsgcMainMouseModeRequest req = { > >> + .mode = mode, > >> + }; > >> + SpiceMsgOut *out; > >> + > >> + g_return_if_fail(SPICE_IS_MAIN_CHANNEL(channel)); > >> + > >> + if (spice_channel_get_read_only(SPICE_CHANNEL(channel))) > >> + return; > >> + > >> + CHANNEL_DEBUG(channel, "request mouse mode %d", mode); > >> + out = spice_msg_out_new(SPICE_CHANNEL(channel), SPICE_MSGC_MAIN_MOUSE_MODE_REQUEST); > >> + out->marshallers->msgc_main_mouse_mode_request(out->marshaller, &req); > >> + spice_msg_out_send(out); > >> +} > >> + > >> /* coroutine context */ > >> static void set_mouse_mode(SpiceMainChannel *channel, uint32_t supported, uint32_t current) > >> { > >> diff --git a/src/channel-main.h b/src/channel-main.h > >> index 6b94c25..3fe8df1 100644 > >> --- a/src/channel-main.h > >> +++ b/src/channel-main.h > >> @@ -98,6 +98,8 @@ gboolean spice_main_file_copy_finish(SpiceMainChannel *channel, > >> GAsyncResult *result, > >> GError **error); > >> > >> +void spice_main_request_mouse_mode(SpiceMainChannel *channel, int mode); > >> + > >> #ifndef SPICE_DISABLE_DEPRECATED > >> SPICE_DEPRECATED_FOR(spice_main_clipboard_selection_grab) > >> void spice_main_clipboard_grab(SpiceMainChannel *channel, guint32 *types, int ntypes); > >> diff --git a/src/map-file b/src/map-file > >> index 92a9883..495a802 100644 > >> --- a/src/map-file > >> +++ b/src/map-file > >> @@ -72,6 +72,7 @@ spice_main_clipboard_selection_release; > >> spice_main_clipboard_selection_request; > >> spice_main_file_copy_async; > >> spice_main_file_copy_finish; > >> +spice_main_request_mouse_mode; > >> spice_main_send_monitor_config; > >> spice_main_set_display; > >> spice_main_set_display_enabled; > >> diff --git a/src/spice-glib-sym-file b/src/spice-glib-sym-file > >> index 3817a46..080f079 100644 > >> --- a/src/spice-glib-sym-file > >> +++ b/src/spice-glib-sym-file > >> @@ -49,6 +49,7 @@ spice_main_clipboard_selection_release > >> spice_main_clipboard_selection_request > >> spice_main_file_copy_async > >> spice_main_file_copy_finish > >> +spice_main_request_mouse_mode > >> spice_main_send_monitor_config > >> spice_main_set_display > >> spice_main_set_display_enabled > >> -- > >> 2.5.0 > >> > >> _______________________________________________ > >> Spice-devel mailing list > >> Spice-devel@xxxxxxxxxxxxxxxxxxxxx > >> http://lists.freedesktop.org/mailman/listinfo/spice-devel > > _______________________________________________ > > Spice-devel mailing list > > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > > http://lists.freedesktop.org/mailman/listinfo/spice-devel > > > > -- > Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel