[Spice-devel] [PATCH] spice-widget: Add spice_display_mouse_grab()
Martin Kletzander
mkletzan at redhat.com
Mon Aug 26 07:30:59 PDT 2013
Similarly to spice_display_mouse_ungrab(), this is intedned to be used
from outside code to force the display to grab the mouse (and
keyboard).
Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
doc/reference/spice-gtk-sections.txt | 2 +-
gtk/map-file | 1 +
gtk/spice-gtk-sym-file | 1 +
gtk/spice-widget.c | 16 ++++++++++++++--
gtk/spice-widget.h | 3 ++-
5 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/doc/reference/spice-gtk-sections.txt b/doc/reference/spice-gtk-sections.txt
index 8d61aa9..17f9d6c 100644
--- a/doc/reference/spice-gtk-sections.txt
+++ b/doc/reference/spice-gtk-sections.txt
@@ -345,6 +345,7 @@ SpiceDisplayClass
SpiceDisplayKeyEvent
spice_display_new
spice_display_new_with_monitor
+spice_display_mouse_grab
spice_display_mouse_ungrab
spice_display_copy_to_guest
spice_display_paste_from_guest
@@ -428,4 +429,3 @@ SPICE_PORT_CHANNEL_GET_CLASS
<SUBSECTION Private>
SpicePortChannelPrivate
</SECTION>
-
diff --git a/gtk/map-file b/gtk/map-file
index a69eb40..eb42049 100644
--- a/gtk/map-file
+++ b/gtk/map-file
@@ -26,6 +26,7 @@ spice_display_get_grab_keys;
spice_display_get_pixbuf;
spice_display_get_type;
spice_display_key_event_get_type;
+spice_display_mouse_grab;
spice_display_mouse_ungrab;
spice_display_new;
spice_display_new_with_monitor;
diff --git a/gtk/spice-gtk-sym-file b/gtk/spice-gtk-sym-file
index 1574e07..ef1b05b 100644
--- a/gtk/spice-gtk-sym-file
+++ b/gtk/spice-gtk-sym-file
@@ -3,6 +3,7 @@ spice_display_get_grab_keys
spice_display_get_pixbuf
spice_display_get_type
spice_display_key_event_get_type
+spice_display_mouse_grab
spice_display_mouse_ungrab
spice_display_new
spice_display_new_with_monitor
diff --git a/gtk/spice-widget.c b/gtk/spice-widget.c
index d25edca..d18b39d 100644
--- a/gtk/spice-widget.c
+++ b/gtk/spice-widget.c
@@ -1,6 +1,6 @@
/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
- Copyright (C) 2010 Red Hat, Inc.
+ Copyright (C) 2010, 2013 Red Hat, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -83,7 +83,8 @@ static gboolean gtk_widget_get_realized(GtkWidget *widget)
* focused if the properties #SpiceDisplay:grab-keyboard and
* #SpiceDisplay:grab-mouse are #TRUE respectively. It can be
* ungrabbed with spice_display_mouse_ungrab(), and by setting a key
- * combination with spice_display_set_grab_keys().
+ * combination with spice_display_set_grab_keys(). The grab can be
+ * also forcefully initiated using spice_display_mouse_ungrab().
*
* Finally, spice_display_get_pixbuf() will take a screenshot of the
* current display and return an #GdkPixbuf (that you can then easily
@@ -2492,6 +2493,17 @@ SpiceDisplay* spice_display_new_with_monitor(SpiceSession *session, gint channel
}
/**
+ * spice_display_mouse_grab:
+ * @display:
+ *
+ * Grab the mouse.
+ **/
+void spice_display_mouse_grab(SpiceDisplay *display)
+{
+ try_mouse_grab(display);
+}
+
+/**
* spice_display_mouse_ungrab:
* @display:
*
diff --git a/gtk/spice-widget.h b/gtk/spice-widget.h
index d239ed2..b71aa53 100644
--- a/gtk/spice-widget.h
+++ b/gtk/spice-widget.h
@@ -1,6 +1,6 @@
/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
- Copyright (C) 2010 Red Hat, Inc.
+ Copyright (C) 2010, 2013 Red Hat, Inc.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -73,6 +73,7 @@ GType spice_display_get_type(void);
SpiceDisplay* spice_display_new(SpiceSession *session, int channel_id);
SpiceDisplay* spice_display_new_with_monitor(SpiceSession *session, gint channel_id, gint monitor_id);
+void spice_display_mouse_grab(SpiceDisplay *display);
void spice_display_mouse_ungrab(SpiceDisplay *display);
void spice_display_set_grab_keys(SpiceDisplay *display, SpiceGrabSequence *seq);
SpiceGrabSequence *spice_display_get_grab_keys(SpiceDisplay *display);
--
1.8.3.2
More information about the Spice-devel
mailing list