tools: grab the pointer in the debug gui

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

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2017-06-13 15:18:56 +10:00
parent 980ad92c88
commit 7e57123069
2 changed files with 15 additions and 1 deletions

View file

@ -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.

View file

@ -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