summaryrefslogtreecommitdiff
path: root/tools/libinput-debug-gui.c
diff options
context:
space:
mode:
authorJosé Expósito <jose.exposito89@gmail.com>2021-06-10 20:07:00 +0200
committerJosé Expósito <jose.exposito89@gmail.com>2021-08-03 16:52:39 +0000
commit791fbad5b9c2847a9a90521c75fc7f7001b1eb01 (patch)
treebf6480f6e9d794c815ea2adfb4ac3eed2ec47337 /tools/libinput-debug-gui.c
parentf36ccc3c11fc053f7747c6e705e819f2d24ac90f (diff)
downloadlibinput-791fbad5b9c2847a9a90521c75fc7f7001b1eb01.tar.gz
tools/debug-gui: use GMainLoop instead of gtk_main
Migrate to GMainLoop because gtk_main is deprecated in GTK 4. Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Diffstat (limited to 'tools/libinput-debug-gui.c')
-rw-r--r--tools/libinput-debug-gui.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/tools/libinput-debug-gui.c b/tools/libinput-debug-gui.c
index 249d3a6a..a14c178d 100644
--- a/tools/libinput-debug-gui.c
+++ b/tools/libinput-debug-gui.c
@@ -82,6 +82,8 @@ struct window {
struct tools_options options;
struct list evdev_devices;
+ GMainLoop *event_loop;
+
GtkWidget *win;
GtkWidget *area;
int width, height; /* of window */
@@ -847,7 +849,15 @@ map_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
static void
window_quit(struct window *w)
{
- gtk_main_quit();
+ g_main_loop_quit(w->event_loop);
+}
+
+static void
+window_delete_event_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
+{
+ struct window *w = data;
+
+ window_quit(w);
}
static void
@@ -865,7 +875,7 @@ window_init(struct window *w)
gtk_window_set_resizable(GTK_WINDOW(w->win), TRUE);
gtk_widget_realize(w->win);
g_signal_connect(G_OBJECT(w->win), "map-event", G_CALLBACK(map_event_cb), w);
- g_signal_connect(G_OBJECT(w->win), "delete-event", G_CALLBACK(window_quit), w);
+ g_signal_connect(G_OBJECT(w->win), "delete-event", G_CALLBACK(window_delete_event_cb), w);
w->area = gtk_drawing_area_new();
gtk_widget_set_events(w->area, 0);
@@ -1687,7 +1697,8 @@ main(int argc, char **argv)
sockets_init(li);
handle_event_libinput(NULL, 0, li);
- gtk_main();
+ w.event_loop = g_main_loop_new(NULL, FALSE);
+ g_main_loop_run(w.event_loop);
window_cleanup(&w);
libinput_unref(li);