1diff -Naur gxmessage-2.20.0/configure.in gxmessage-2.20.0gtk3/configure.in
2--- gxmessage-2.20.0/configure.in	2012-02-25 04:04:44.000000000 +0000
3+++ gxmessage-2.20.0gtk3/configure.in	2013-08-18 20:53:50.000000000 +0100
4@@ -40,7 +40,7 @@
5 AC_SUBST(PACKAGE_CFLAGS)
6 AC_SUBST(PACKAGE_LIBS)
7
8-PKG_CHECK_MODULES(PACKAGE, gtk+-2.0 >= 2.20.0)
9+PKG_CHECK_MODULES(PACKAGE, gtk+-3.0 >= 3.0.0)
10
11 AC_OUTPUT([
12 doc/Makefile
13diff -Naur gxmessage-2.20.0/gxmessage.c gxmessage-2.20.0gtk3/gxmessage.c
14--- gxmessage-2.20.0/gxmessage.c	2012-02-25 13:25:43.000000000 +0000
15+++ gxmessage-2.20.0gtk3/gxmessage.c	2013-08-18 20:52:24.000000000 +0100
16@@ -357,7 +357,7 @@
17 gboolean
18 cb_key_press (GtkWidget *w, GdkEventKey *event, gpointer data)
19 {
20-	if (gx.allow_escape && (event->keyval == GDK_Escape)) {
21+	if (gx.allow_escape && (event->keyval == GDK_KEY_Escape)) {
22 		gtk_main_quit ();
23 	}
24 	return FALSE;
25@@ -496,10 +496,10 @@
26 	/* window contents */
27 	gtk_container_set_border_width (GTK_CONTAINER(window), 12);
28
29-	vbox = gtk_vbox_new (FALSE, 12);
30+	vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
31 	gtk_container_add (GTK_CONTAINER(window), vbox);
32
33-	vbox2 = gtk_vbox_new (FALSE, 0);
34+	vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
35 	gtk_box_pack_start (GTK_BOX(vbox), vbox2, TRUE, TRUE, 0);
36 	gtk_container_set_border_width (GTK_CONTAINER(vbox2), 0);
37
38@@ -565,7 +565,7 @@
39
40 		button = button_first (gx.button_list);
41
42-		btn_box = gtk_hbutton_box_new ();
43+		btn_box = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
44 		gtk_button_box_set_layout (GTK_BUTTON_BOX(btn_box),
45 		                           GTK_BUTTONBOX_END);
46 		gtk_box_set_spacing (GTK_BOX(btn_box), 6);
47@@ -624,7 +624,7 @@
48 		gtk_widget_modify_font (dummy,
49 		    gtk_widget_get_style (message_widget)->font_desc);
50 		gtk_container_add (GTK_CONTAINER(vbox), dummy);
51-		gtk_widget_size_request (dummy, &size_req);
52+		gtk_widget_get_preferred_size (dummy, &size_req, NULL);
53 		gtk_widget_destroy (dummy);
54 		/* ~50 pixels for borders and scrollbar space */
55 		win_w = size_req.width + 50;
56@@ -634,12 +634,12 @@
57 	}
58
59 	if (gx.entry_str != NULL) {
60-		gtk_widget_size_request (gx.entry_widget, &size_req);
61+		gtk_widget_get_preferred_size (gx.entry_widget, &size_req, NULL);
62 		win_h = win_h + size_req.height + 12;
63 	}
64
65 	if (gx.do_buttons) {
66-		gtk_widget_size_request (btn, &size_req);
67+		gtk_widget_get_preferred_size (btn, &size_req, NULL);
68 		win_h = win_h + size_req.height + 12;
69 	}
70
71@@ -658,7 +658,7 @@
72
73 	/* begin timeout */
74 	if (gx.timeout != 0) {
75-		gx.timeout_id = g_timeout_add (1000, (GtkFunction)cb_timeout,
76+		gx.timeout_id = g_timeout_add (1000, (GSourceFunc)cb_timeout,
77 		                               &gx.timeout);
78 	}
79 }
80