[PATCH libinput] tools: grab the pointer in the debug gui

Peter Hutterer peter.hutterer at who-t.net
Wed Jun 14 01:21:11 UTC 2017


Because it's too annoying to trigger the hot corner every few seconds while
pointer debugging.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 tools/libinput-debug-gui.1 |  4 +++-
 tools/libinput-debug-gui.c | 12 ++++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/tools/libinput-debug-gui.1 b/tools/libinput-debug-gui.1
index 1d289fdb..e6d4d21f 100644
--- a/tools/libinput-debug-gui.1
+++ b/tools/libinput-debug-gui.1
@@ -8,7 +8,9 @@ libinput\-debug\-gui \- visual debug helper for libinput
 The
 .B "libinput debug\-gui"
 tool creates a libinput context and a full-screen GTK window to visualize
-events processed by libinput.
+events processed by libinput. This tool exclusively grabs pointing devices
+and stops them from interacting with the rest of the GUI.
+.B Hit Esc to exit this tool.
 .PP
 This is a debugging tool only, its output or behavior may change at any
 time. Do not rely on the output or the behavior.
diff --git a/tools/libinput-debug-gui.c b/tools/libinput-debug-gui.c
index 4091b556..ae1d2950 100644
--- a/tools/libinput-debug-gui.c
+++ b/tools/libinput-debug-gui.c
@@ -383,6 +383,7 @@ map_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
 	struct window *w = data;
 	GdkDisplay *display;
+	GdkSeat *seat;
 	GdkWindow *window;
 
 	gtk_window_get_size(GTK_WINDOW(widget), &w->width, &w->height);
@@ -410,6 +411,17 @@ map_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
 	gdk_window_set_cursor(gtk_widget_get_window(w->win),
 			      gdk_cursor_new_for_display(display,
 							 GDK_BLANK_CURSOR));
+
+	seat = gdk_display_get_default_seat(display);
+	gdk_seat_grab(seat,
+		      window,
+		      GDK_SEAT_CAPABILITY_ALL_POINTING,
+		      FALSE, /* owner-events */
+		      NULL, /* cursor */
+		      NULL, /* triggering event */
+		      NULL, /* prepare_func */
+		      NULL /* prepare_func_data */
+		     );
 }
 
 static void
-- 
2.13.0



More information about the wayland-devel mailing list