From a90fd71a93451bd6b76e8036c678b8ec948c1c27 Mon Sep 17 00:00:00 2001 From: Brian Bidulock 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