From: Vladimir Nadvornik Date: Tue, 14 Aug 2012 18:22:37 +0000 (+0200) Subject: fixed compilation with gtk 2.20 X-Git-Tag: v1.2~158 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=48d7bdaed133cd4adadcfdf3973e74056ff666fd fixed compilation with gtk 2.20 --- diff --git a/README b/README index 26dad4d7..4e02aae9 100644 --- a/README +++ b/README @@ -48,10 +48,7 @@ geeqie-devel@lists.sourceforge.net ======== Requirements Required libraries: - GTK+ 2.??.x: ftp://ftp.gtk.org/pub/gtk -FIXME: determine realistic requirements. -It compiles with GTK 2.10, but some features are disabled and the testing was -minimal. Please report success or falilures. + GTK+ 2.20: ftp://ftp.gtk.org/pub/gtk Optional libraries: lcms, for color management support: http://www.littlecms.com diff --git a/configure.in b/configure.in index 258b5392..b4354f8e 100644 --- a/configure.in +++ b/configure.in @@ -190,12 +190,21 @@ else fi AM_PATH_GLIB_2_0(2.4.0,,AC_MSG_ERROR(GLIB >= 2.4.0 not installed.)) -AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [yes], [no])]) +AC_ARG_ENABLE([gtk3], AC_HELP_STRING([--disable-gtk3], [use gtk2 instead of gtk3]),[gtk3="${enableval}"], [gtk3=m4_ifdef([AM_PATH_GTK_3_0], [auto], [no])]) if test x$gtk3 == xyes; then + AC_MSG_WARN("Gtk3 enabled") m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,AC_MSG_ERROR(GTK+ >= 3.0.0 not installed.))]) else - m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.12.0,,AC_MSG_ERROR(GTK+ >= 2.12.0 not installed.))]) + if test x$gtk3 != xno; then + AC_MSG_WARN("Gtk3 is preferred...") + m4_ifdef([AM_PATH_GTK_3_0], [AM_PATH_GTK_3_0(3.0.0,,[gtk3=no])]) + fi +fi + +if test x$gtk3 == xno; then + m4_ifdef([AM_PATH_GTK_2_0], [AM_PATH_GTK_2_0(2.20.0,,AC_MSG_ERROR(GTK+ >= 2.12.0 not installed.))]) + true fi threads="auto" diff --git a/src/compat.c b/src/compat.c index a4fbeea5..4574f6bf 100644 --- a/src/compat.c +++ b/src/compat.c @@ -55,4 +55,30 @@ GList* hash_table_get_keys(GHashTable *hash_table) #endif } +#if !GTK_CHECK_VERSION(2,24,0) +gint compat_gdk_window_get_width(GdkWindow *window) +{ + gint w, h; + gdk_drawable_get_size(window, &w, &h); + return w; +} + +gint compat_gdk_window_get_height(GdkWindow *window) +{ + gint w, h; + gdk_drawable_get_size(window, &w, &h); + return h; +} +#endif + +#if !GTK_CHECK_VERSION(2,22,0) +cairo_surface_t *compat_gdk_window_create_similar_surface (GdkWindow *window, cairo_content_t content, gint width, gint height) +{ + cairo_t *cr = gdk_cairo_create(window); + cairo_surface_t *ws = cairo_get_target(cr); + cairo_surface_t *ret = cairo_surface_create_similar(ws, content, width, height); + cairo_destroy(cr); + return ret; +} +#endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ diff --git a/src/compat.h b/src/compat.h index c39943e0..dd1b268f 100644 --- a/src/compat.h +++ b/src/compat.h @@ -28,6 +28,64 @@ GList* hash_table_get_keys(GHashTable *hash_table); #define MAP_ANON MAP_ANONYMOUS #endif +#ifndef GDK_KEY_Up +#define GDK_KEY_BackSpace GDK_BackSpace +#define GDK_KEY_Delete GDK_Delete +#define GDK_KEY_Down GDK_Down +#define GDK_KEY_End GDK_End +#define GDK_KEY_Escape GDK_Escape +#define GDK_KEY_F10 GDK_F10 +#define GDK_KEY_F11 GDK_F11 +#define GDK_KEY_Home GDK_Home +#define GDK_KEY_ISO_Left_Tab GDK_ISO_Left_Tab +#define GDK_KEY_KP_Add GDK_KP_Add +#define GDK_KEY_KP_Delete GDK_KP_Delete +#define GDK_KEY_KP_Divide GDK_KP_Divide +#define GDK_KEY_KP_Down GDK_KP_Down +#define GDK_KEY_KP_End GDK_KP_End +#define GDK_KEY_KP_Enter GDK_KP_Enter +#define GDK_KEY_KP_Home GDK_KP_Home +#define GDK_KEY_KP_Left GDK_KP_Left +#define GDK_KEY_KP_Multiply GDK_KP_Multiply +#define GDK_KEY_KP_Page_Down GDK_KP_Page_Down +#define GDK_KEY_KP_Page_Up GDK_KP_Page_Up +#define GDK_KEY_KP_Right GDK_KP_Right +#define GDK_KEY_KP_Subtract GDK_KP_Subtract +#define GDK_KEY_KP_Up GDK_KP_Up +#define GDK_KEY_Left GDK_Left +#define GDK_KEY_Menu GDK_Menu +#define GDK_KEY_Page_Down GDK_Page_Down +#define GDK_KEY_Page_Up GDK_Page_Up +#define GDK_KEY_plus GDK_plus +#define GDK_KEY_Return GDK_Return +#define GDK_KEY_Right GDK_Right +#define GDK_KEY_space GDK_space +#define GDK_KEY_Tab GDK_Tab +#define GDK_KEY_Up GDK_Up +#endif + +#if !GTK_CHECK_VERSION(2,24,0) +#define gtk_combo_box_text_new gtk_combo_box_new_text +#define gtk_combo_box_text_append_text gtk_combo_box_append_text +#define gtk_combo_box_text_new_with_entry gtk_combo_box_entry_new_text +#define gtk_combo_box_new_with_model_and_entry(model) gtk_combo_box_entry_new_with_model(model, FILTER_COLUMN_FILTER) +#define GTK_COMBO_BOX_TEXT(combo) GTK_COMBO_BOX(combo) +#define gdk_window_get_width(window) compat_gdk_window_get_width(window) +#define gdk_window_get_height(window) compat_gdk_window_get_height(window) + +gint compat_gdk_window_get_width(GdkWindow *window); +gint compat_gdk_window_get_height(GdkWindow *window); + +#endif + +#if !GTK_CHECK_VERSION(2,24,0) +#define gdk_window_create_similar_surface(window, content, width, height) compat_gdk_window_create_similar_surface(window, content, width, height) +cairo_surface_t *compat_gdk_window_create_similar_surface (GdkWindow *window, cairo_content_t content, gint width, gint height); + +#define gdk_drag_context_get_selected_action(context) ((context)->action) +#define gdk_drag_context_get_suggested_action(context) ((context)->suggested_action) +#define gdk_drag_context_get_actions(context) ((context)->actions) +#endif #endif /* COMPAT_H */ /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ diff --git a/src/ui_tree_edit.c b/src/ui_tree_edit.c index a6a47984..d1f6b50e 100644 --- a/src/ui_tree_edit.c +++ b/src/ui_tree_edit.c @@ -22,6 +22,8 @@ #include #include +#include "compat.h" + #include "ui_tree_edit.h" /*