1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
From a90fd71a93451bd6b76e8036c678b8ec948c1c27 Mon Sep 17 00:00:00 2001
From: Brian Bidulock <bidulock@openss7.org>
Date: Sun, 29 May 2016 20:44:00 -0600
Subject: [PATCH 1/3] Revert "Drop GTK2 support."
This reverts commit 1943749cb6f61a8e2a3a26111c95ee806ca4c474.
---
configure.ac | 38 +++++++++++++++++++++++++++++++-------
eek/eek-gtk-keyboard.c | 20 ++++++++++++++++++++
2 files changed, 51 insertions(+), 7 deletions(-)
diff --git a/configure.ac b/configure.ac
index be57569..b58eeb1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,13 +44,34 @@ AC_HEADER_STDC
LT_INIT
IT_PROG_INTLTOOL([0.35.0])
-GTK_API_VERSION=3.0
-GTK_REQUIRED=2.91.0
-EEK_API_VERSION=0.90
-EEK_API_MAJOR_VERSION=0
-EEK_API_MINOR_VERSION=90
-EEK_API_PC_VERSION=0.90
-EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION"
+AC_MSG_CHECKING([which gtk+ version to compile against])
+AC_ARG_WITH([gtk],
+ [AS_HELP_STRING([--with-gtk=2.0|3.0],[which gtk+ version to compile against (default: 3.0)])],
+ [case "$with_gtk" in
+ 2.0|3.0) ;;
+ *) AC_MSG_ERROR([invalid gtk version specified]) ;;
+ esac],
+ [with_gtk=3.0])
+AC_MSG_RESULT([$with_gtk])
+
+case "$with_gtk" in
+ 2.0) GTK_API_VERSION=2.0
+ GTK_REQUIRED=2.14.0
+ EEK_API_VERSION=0.90
+ EEK_API_MAJOR_VERSION=0
+ EEK_API_MINOR_VERSION=90
+ EEK_API_PC_VERSION=0.90
+ EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION"
+ ;;
+ 3.0) GTK_API_VERSION=3.0
+ GTK_REQUIRED=2.91.0
+ EEK_API_VERSION=0.90
+ EEK_API_MAJOR_VERSION=0
+ EEK_API_MINOR_VERSION=90
+ EEK_API_PC_VERSION=0.90
+ EEK_LIBRARY_SUFFIX="-$EEK_API_VERSION"
+ ;;
+esac
AC_SUBST([GTK_API_VERSION])
AC_SUBST([EEK_API_VERSION])
@@ -60,6 +81,9 @@ AC_SUBST([EEK_API_PC_VERSION])
AC_SUBST([EEK_LIBRARY_SUFFIX])
AC_SUBST([EEK_LIBRARY_SUFFIX_U],[AS_TR_SH([$EEK_LIBRARY_SUFFIX])])
+AM_CONDITIONAL([HAVE_GTK_2],[test "$with_gtk" = "2.0"])
+AM_CONDITIONAL([HAVE_GTK_3],[test "$with_gtk" = "3.0"])
+
AM_PATH_GLIB_2_0
PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.26.0], ,
[AC_MSG_ERROR([GLib2 not found])])
diff --git a/eek/eek-gtk-keyboard.c b/eek/eek-gtk-keyboard.c
index e2ddf4a..42066e5 100644
--- a/eek/eek-gtk-keyboard.c
+++ b/eek/eek-gtk-keyboard.c
@@ -180,6 +180,22 @@ eek_gtk_keyboard_real_draw (GtkWidget *self,
return FALSE;
}
+#if !GTK_CHECK_VERSION (2, 91, 2)
+static gboolean
+eek_gtk_keyboard_real_expose_event (GtkWidget *self,
+ GdkEventExpose *event)
+{
+ gboolean retval;
+ cairo_t *cr;
+
+ cr = gdk_cairo_create (GDK_DRAWABLE (gtk_widget_get_window (self)));
+ retval = eek_gtk_keyboard_real_draw (self, cr);
+ cairo_destroy (cr);
+
+ return retval;
+}
+#endif /* !GTK_CHECK_VERSION (2, 91, 2) */
+
static void
eek_gtk_keyboard_real_size_allocate (GtkWidget *self,
GtkAllocation *allocation)
@@ -416,7 +432,11 @@ eek_gtk_keyboard_class_init (EekGtkKeyboardClass *klass)
widget_class->realize = eek_gtk_keyboard_real_realize;
widget_class->unmap = eek_gtk_keyboard_real_unmap;
+#if GTK_CHECK_VERSION (2, 91, 2)
widget_class->draw = eek_gtk_keyboard_real_draw;
+#else /* GTK_CHECK_VERSION (2, 91, 2) */
+ widget_class->expose_event = eek_gtk_keyboard_real_expose_event;
+#endif /* !GTK_CHECK_VERSION (2, 91, 2) */
widget_class->size_allocate = eek_gtk_keyboard_real_size_allocate;
widget_class->button_press_event =
eek_gtk_keyboard_real_button_press_event;
--
2.8.3
|