summarylogtreecommitdiffstats
path: root/0001-Revert-Drop-GTK2-support.patch
blob: 6272ec25e256f117b852852290385cb0856af93d (plain)
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