tools/debug-gui: use GMainLoop instead of gtk_main
authorJosé Expósito <jose.exposito89@gmail.com>
Thu, 10 Jun 2021 18:07:00 +0000 (20:07 +0200)
committerJosé Expósito <jose.exposito89@gmail.com>
Tue, 3 Aug 2021 16:52:39 +0000 (16:52 +0000)
Migrate to GMainLoop because gtk_main is deprecated in GTK 4.

Signed-off-by: José Expósito <jose.exposito89@gmail.com>
tools/libinput-debug-gui.c

index 249d3a6ac276d24f35c1048239d5a824dee02a92..a14c178dd0517c43552cfd80b19e1678f06ed78c 100644 (file)
@@ -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);