1#include <gtk/gtk.h>
2
3int
4main (int argc, char **argv)
5{
6 const char *display_name;
7 GdkDisplay *display;
8 GtkWidget *win, *but;
9 gboolean has_display;
10
11 g_log_set_always_fatal (fatal_mask: G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL);
12
13 gdk_set_allowed_backends (backends: "x11");
14 display_name = g_getenv (variable: "DISPLAY");
15 g_unsetenv (variable: "DISPLAY");
16 has_display = gtk_init_check ();
17 g_assert_false (has_display);
18
19 display = gdk_display_open (display_name);
20
21 if (!display)
22 return 0;
23
24 gdk_display_manager_set_default_display (manager: gdk_display_manager_get (), display);
25
26 win = gtk_window_new ();
27
28 but = gtk_button_new_with_label (label: "Try to Exit");
29 g_signal_connect_swapped (but, "clicked",
30 G_CALLBACK (gtk_window_destroy), win);
31 gtk_window_set_child (GTK_WINDOW (win), child: but);
32
33 gtk_widget_show (widget: win);
34
35 gtk_test_widget_wait_for_draw (widget: win);
36
37 gdk_display_close (display);
38
39 return 0;
40}
41

source code of gtk/testsuite/gtk/displayclose.c