The unified diff between revisions [df87519a..] and [ac7bb8ae..] is displayed below. It can also be downloaded as a raw diff.
#
#
# delete "contrib/glib-2.22.4.diff"
#
# delete "contrib/gtk+-2.18.6.diff"
#
# rename "contrib/cairo-1.8.8-win32.diff"
# to "contrib/cairo-1.8.10-win32.diff"
#
# rename "contrib/cairo-1.8.8.diff"
# to "contrib/cairo-1.8.10.diff"
#
# rename "contrib/glib-2.22.4-win32.diff"
# to "contrib/glib-2.23.4-win32.diff"
#
# rename "contrib/gtk+-2.18.6-darwin.diff"
# to "contrib/gtk+-2.18.7-darwin.diff"
#
# rename "contrib/gtk+-2.18.6-win32.diff"
# to "contrib/gtk+-2.18.7-win32.diff"
#
# rename "contrib/pango-1.26.1.diff"
# to "contrib/pango-1.26.2.diff"
#
# add_file "contrib/glib-2.23.4.diff"
# content [4de82618c1de6b76e9a00617e65ced4d4e6b3f73]
#
# add_file "contrib/gtk+-2.16.6-win32.diff"
# content [509e0ed1347abba8c4cb0640d870bb3f6d64e044]
#
# add_file "contrib/gtk+-2.16.6.diff"
# content [886f94618eaaa9e5e1f0de6c4e1bf4f45eab0c60]
#
# add_file "contrib/gtk+-2.18.7.diff"
# content [272d25fb3b97154d4022a1ddc58900b338017c49]
#
# add_file "contrib/pygobject-2.18.0.diff"
# content [80dccaf30dea2450b944cb363a19534bf8f85001]
#
# add_file "contrib/pygobject-2.21.1.diff"
# content [397690d8c804d1a9cff28b4b823ba43ef5fd4881]
#
# patch "aclocal.m4"
# from [ef4fcd7ab8e103b3bf67d9ae454422f4e940ecb4]
# to [bd6dd214273d1df21a52647496c8847a2654e089]
#
# patch "configure"
# from [bcd142d75c0713ecb3dc2b0fecda10372b998e94]
# to [d661cc5f697815d3ea6c56cd34be9092a1c0d3ad]
#
# patch "contrib/README"
# from [53ec377f471be3e7d085c1a08bbed1d07044bf9a]
# to [8e9b9dd6454ff90995161d1524b4d98f4f5c8ab8]
#
# patch "contrib/pango-1.26.2.diff"
# from [531522a0f5422e89c61a075aeb62362d29956e1a]
# to [58fa0101ed1829b6aa355012b17a1123303a6216]
#
# patch "src/gtk-enums.ads"
# from [530680cac74db7b197195e912ce32b9aec3c6970]
# to [97e99d580f5c41a6b3ce2e116a24fb70467beced]
#
# patch "src/gtk-toolbar.ads"
# from [3b2f216a48641a8d1d9050e585923172420f225e]
# to [a105af5adf57ea05a80186ef517672aa2cf58563]
#
# patch "src/opengl/gl_h.ads"
# from [756a57fcab1c7bb4dce9a4536644210decad7a42]
# to [9a990b321c3af85868758a63ef9564cb05c83c3a]
#
============================================================
--- contrib/glib-2.23.4.diff 4de82618c1de6b76e9a00617e65ced4d4e6b3f73
+++ contrib/glib-2.23.4.diff 4de82618c1de6b76e9a00617e65ced4d4e6b3f73
@@ -0,0 +1,62 @@
+ * gio/gsocket.c: Fix build on Solaris 8 by providing needed macros
+ defined on Solaris 10.
+ Submitted at: https://bugzilla.gnome.org/show_bug.cgi?id=610664
+
+ * gio/Makefile.in: Disable build in subdirectory tests, which does
+ not build out of the box on Solaris
+
+--- gio/gsocket.c.old 2010-01-07 01:19:12.000000000 +0100
++++ gio/gsocket.c 2010-01-29 13:07:02.275043000 +0100
+@@ -55,6 +55,16 @@
+
+ #include "gioalias.h"
+
++#if defined (sun) && !defined (CMSG_SPACE)
++/* Amount of space + padding needed for a message of length l */
++#define CMSG_SPACE(l) \
++ ((unsigned int)_CMSG_HDR_ALIGN(sizeof (struct cmsghdr) + (l)))
++
++/* Value to be used in cmsg_len, does not include trailing padding */
++#define CMSG_LEN(l) \
++ ((unsigned int)_CMSG_DATA_ALIGN(sizeof (struct cmsghdr)) + (l))
++#endif
++
+ /**
+ * SECTION:gsocket
+ * @short_description: Low-level socket object
+*** gio/Makefile.in.original Tue Feb 16 17:28:32 2010
+--- gio/Makefile.in Tue Feb 16 17:28:56 2010
+*************** ETAGS = etags
+*** 258,264 ****
+ CTAGS = ctags
+ am__tty_colors = \
+ red=; grn=; lgn=; blu=; std=
+! DIST_SUBDIRS = libasyncns xdgmime inotify fen win32 . fam tests
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ am__relativize = \
+ dir0=`pwd`; \
+--- 258,264 ----
+ CTAGS = ctags
+ am__tty_colors = \
+ red=; grn=; lgn=; blu=; std=
+! DIST_SUBDIRS = libasyncns xdgmime inotify fen win32 . fam
+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ am__relativize = \
+ dir0=`pwd`; \
+*************** EXTRA_DIST = gio-marshal.list gio.symbol
+*** 508,514 ****
+ TEST_PROGS =
+ NULL =
+ SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_6) \
+! $(am__append_9) . $(am__append_12) tests
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@noinst_DATA = gio-2.0.lib
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir)
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib
+--- 508,514 ----
+ TEST_PROGS =
+ NULL =
+ SUBDIRS = $(am__append_1) $(am__append_2) $(am__append_6) \
+! $(am__append_9) . $(am__append_12)
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@noinst_DATA = gio-2.0.lib
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@install_ms_lib_cmd = $(INSTALL) gio-2.0.lib $(DESTDIR)$(libdir)
+ @MS_LIB_AVAILABLE_TRUE@@OS_WIN32_AND_DLL_COMPILATION_TRUE@uninstall_ms_lib_cmd = -rm $(DESTDIR)$(libdir)/gio-2.0.lib
============================================================
--- contrib/gtk+-2.16.6-win32.diff 509e0ed1347abba8c4cb0640d870bb3f6d64e044
+++ contrib/gtk+-2.16.6-win32.diff 509e0ed1347abba8c4cb0640d870bb3f6d64e044
@@ -0,0 +1,252 @@
+2010-02-18 Arnaud Charlet <charlet@adacore.com>
+
+ * modules/engines/ms-windows/xp_theme.c: Fix invisible menu separator.
+
+2010-02-01 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/win32/gdkdrawable-win32.c (draw_segments): Ignore LineTo
+ errors.
+
+2009-09-29 Nicolas Setton <setton@adacore.com>
+
+ * gdk/win32/gdkevents-win32.c:
+ Protect against infinite loop in the events processing queue, in cases
+ where the translation of events cause the same events to be
+ regenerated. This protects against two cases of loops that have been
+ observed under Citrix.
+ (gdk_event_translate): Protect against reentry on move or size events
+ that are being re-posted by Gtk+, which happens when a Citrix window
+ receives move events but has never been mapped to a Gtk+ window.
+ (_gdk_event_queue): After having processed all the messages, reset the
+ reentry flags.
+
+2009-07-20 Arnaud Charlet <charlet@adacore.com>
+
+ * configure: Work around ^M handling on cygwin with igncr
+
+2009-02-24 Arnaud Charlet <charlet@adacore.com>
+
+ * gtk/gtkmain.c (gtk_grab_notify_foreach): Disable event crossing
+ handling, causing crashes.
+
+2007-10-10 Arnaud Charlet <charlet@adacore.com>
+
+ * modules/engines/ms-windows/msw_style.c (draw_themed_tab_button):
+ Avoid SEGV in case pixbuf is null or clip_rect is empty.
+ Fixes G928-005
+
+2006-06-05 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/win32/gdkgc-win32.c (_gdk_win32_gdkregion_to_hrgn): Disable
+ harmless warning which is occurring often with Gtk+ >= 2.8.18
+
+2002-11-25 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/win32/gdkevents-win32.c (handle_wm_paint): Force an update when
+ paint message is received, otherwise windows in background are not
+ immediately refreshed when moving a modal window on top of them.
+
+ * gdk/Makefile.in: Remove gdk-win32res.o dependency,
+ since we do not want to use the default Gtk+ icon.
+
+--- gdk/win32/gdkevents-win32.c.old 2009-12-22 12:37:10.468370000 +0100
++++ gdk/win32/gdkevents-win32.c 2010-01-06 17:04:42.923000000 +0100
+@@ -1692,6 +1692,12 @@ handle_wm_paint (MSG *msg,
+ _gdk_window_invalidate_for_expose (window, update_region);
+ gdk_region_destroy (update_region);
+
++ /* Force a process_updates to refresh visible windows
++ * when receiving a paint message. */
++
++ if (!GDK_WINDOW_DESTROYED (window) && gdk_window_is_visible (window))
++ gdk_window_process_updates (window, FALSE);
++
+ DeleteObject (hrgn);
+ }
+
+--- gdk/win32/gdkgc-win32.c.old 2005-07-18 17:20:28.000000000 +0200
++++ gdk/win32/gdkgc-win32.c 2006-06-05 14:56:59.515625000 +0200
+@@ -1160,8 +1160,7 @@ _gdk_win32_gdkregion_to_hrgn (GdkRegion
+ if (rect->bottom > rgndata->rdh.rcBound.bottom)
+ rgndata->rdh.rcBound.bottom = rect->bottom;
+ }
+- if ((hrgn = ExtCreateRegion (NULL, nbytes, rgndata)) == NULL)
+- WIN32_API_FAILED ("ExtCreateRegion");
++ hrgn = ExtCreateRegion (NULL, nbytes, rgndata);
+
+ g_free (rgndata);
+
+--- modules/engines/ms-windows/msw_style.c.orig 2008-03-12 05:17:03.000000000 +0100
++++ modules/engines/ms-windows/msw_style.c 2008-04-17 18:35:13.515625000 +0200
+@@ -2649,6 +2649,9 @@ draw_themed_tab_button (GtkStyle *style,
+ GdkPixbuf *pixbuf;
+ GdkPixbuf *rotated;
+
++ if (clip_rect.width <= 0 || clip_rect.height <= 0)
++ return TRUE;
++
+ if (gap_side == GTK_POS_LEFT || gap_side == GTK_POS_RIGHT)
+ {
+ pixmap = gdk_pixmap_new (window, clip_rect.height, clip_rect.width, -1);
+@@ -2682,6 +2685,7 @@ draw_themed_tab_button (GtkStyle *style,
+ g_object_unref (pixmap);
+ }
+
++ if (pixbuf != NULL) {
+ rotated = gdk_pixbuf_rotate_simple (pixbuf, rotation);
+ g_object_unref (pixbuf);
+ pixbuf = rotated;
+@@ -2710,6 +2714,7 @@ draw_themed_tab_button (GtkStyle *style,
+ clip_rect.width, clip_rect.height, GDK_RGB_DITHER_NONE,
+ 0, 0);
+ g_object_unref (pixbuf);
++ }
+ }
+
+ return TRUE;
+--- gtk/gtkmain.c.old 2009-02-24 10:44:02.598600000 +0100
++++ gtk/gtkmain.c 2009-02-24 10:45:04.218600000 +0100
+@@ -1707,19 +1707,23 @@ gtk_grab_notify_foreach (GtkWidget *chil
+ if (is_shadowed)
+ {
+ GTK_PRIVATE_SET_FLAG (child, GTK_SHADOWED);
++#if !defined (_WIN32)
+ if (!was_shadowed && GTK_WIDGET_HAS_POINTER (child)
+ && GTK_WIDGET_IS_SENSITIVE (child))
+ _gtk_widget_synthesize_crossing (child, info->new_grab_widget,
+ GDK_CROSSING_GTK_GRAB);
++#endif
+ }
+ else
+ {
+ GTK_PRIVATE_UNSET_FLAG (child, GTK_SHADOWED);
++#if !defined (_WIN32)
+ if (was_shadowed && GTK_WIDGET_HAS_POINTER (child)
+ && GTK_WIDGET_IS_SENSITIVE (child))
+ _gtk_widget_synthesize_crossing (info->old_grab_widget, child,
+ info->from_grab ? GDK_CROSSING_GTK_GRAB
+ : GDK_CROSSING_GTK_UNGRAB);
++#endif
+ }
+
+ if (was_shadowed != is_shadowed)
+--- configure.old 2009-02-23 15:54:03.650263500 +0100
++++ configure 2009-02-23 15:54:54.711263500 +0100
+@@ -36969,6 +36971,7 @@ if test "$ac_cs_awk_cr" = "a${ac_cr}b";
+ else
+ ac_cs_awk_cr=$ac_cr
+ fi
++ac_cs_awk_cr=$ac_cr
+
+ echo 'BEGIN {' >"$tmp/subs1.awk" &&
+ _ACEOF
+*** gdk/win32/gdkevents-win32.c.before_patch 2009-09-22 20:06:09.000000000 +0200
+--- gdk/win32/gdkevents-win32.c 2009-09-24 16:25:23.000000000 +0200
+*************** static UINT client_message;
+*** 133,138 ****
+--- 133,144 ----
+ static UINT got_gdk_events_message;
+ static HWND modal_win32_dialog = NULL;
+
++ /* The following variables are used to protect against re-entry in the
++ _gdk_event_queue main loop, which can happen under Citrix. */
++ static gint activate_events = 0;
++ static gint move_or_size_events = 0;
++ static gint reentry_threshold = 3;
++
+ #if 0
+ static HKL latin_locale = NULL;
+ #endif
+*************** gdk_event_translate (MSG *msg,
+*** 2324,2330 ****
+ */
+ GDK_NOTE (EVENTS, g_print (" (posted)"));
+
+! PostMessageW (msg->hwnd, msg->message, msg->wParam, msg->lParam);
+ }
+ else if (msg->message == WM_CREATE)
+ {
+--- 2330,2340 ----
+ */
+ GDK_NOTE (EVENTS, g_print (" (posted)"));
+
+! /* Do not post this message if we have posted it too many times
+! within the same event loop. */
+! move_or_size_events += 1;
+! if (move_or_size_events < reentry_threshold)
+! PostMessageW (msg->hwnd, msg->message, msg->wParam, msg->lParam);
+ }
+ else if (msg->message == WM_CREATE)
+ {
+*************** gdk_event_translate (MSG *msg,
+*** 3695,3701 ****
+ if (is_modally_blocked (window) && LOWORD (msg->wParam) == WA_ACTIVE)
+ {
+ GdkWindow *modal_current = _gdk_modal_current ();
+! SetActiveWindow (GDK_WINDOW_HWND (modal_current));
+ *ret_valp = 0;
+ return_val = TRUE;
+ break;
+--- 3705,3717 ----
+ if (is_modally_blocked (window) && LOWORD (msg->wParam) == WA_ACTIVE)
+ {
+ GdkWindow *modal_current = _gdk_modal_current ();
+!
+! /* Do not change the active window if we have done this too many
+! times within the same event loop. */
+! activate_events += 1;
+! if (activate_events < reentry_threshold)
+! SetActiveWindow (GDK_WINDOW_HWND (modal_current));
+!
+ *ret_valp = 0;
+ return_val = TRUE;
+ break;
+*************** _gdk_events_queue (GdkDisplay *display)
+*** 3775,3780 ****
+--- 3791,3801 ----
+ TranslateMessage (&msg);
+ DispatchMessageW (&msg);
+ }
++
++ /* we are leaving the events queue processing: reset flags that protect
++ against re-entry */
++ activate_events = 0;
++ move_or_size_events = 0;
+ }
+
+ static gboolean
+--- gdk/win32/gdkdrawable-win32.c.old 2010-01-31 18:48:07.679800000 +0100
++++ gdk/win32/gdkdrawable-win32.c 2010-01-31 18:48:32.429800000 +0100
+@@ -1246,7 +1246,7 @@ draw_segments (GdkGCWin32 *gcwin32,
+
+ GDK_NOTE (DRAW, g_print (" +%d+%d..+%d+%d", x1, y1, x2, y2));
+ GDI_CALL (MoveToEx, (hdc, x1, y1, NULL)) &&
+- GDI_CALL (LineTo, (hdc, x2, y2));
++ LineTo (hdc, x2, y2);
+ }
+
+ GDK_NOTE (DRAW, g_print ("\n"));
+--- gdk/Makefile.in.orig 2009-08-29 05:43:07.000000000 +0200
++++ gdk/Makefile.in 2010-02-12 10:14:43.210000000 +0100
+@@ -596,8 +596,8 @@ libgdk_win32_2_0_la_SOURCES = $(common_s
+ libgdk_win32_2_0_la_LIBADD = win32/libgdk-win32.la $(GDK_DEP_LIBS) \
+ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GTK_API_VERSION).la
+
+-libgdk_win32_2_0_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o gdk.def
+-libgdk_win32_2_0_la_LDFLAGS = -Wl,win32/rc/gdk-win32-res.o -export-symbols $(srcdir)/gdk.def $(LDADD)
++libgdk_win32_2_0_la_DEPENDENCIES = win32/libgdk-win32.la gdk.def
++libgdk_win32_2_0_la_LDFLAGS = -export-symbols $(srcdir)/gdk.def $(LDADD)
+
+ @MS_LIB_AVAILABLE_TRUE@noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib
+
+--- modules/engines/ms-windows/xp_theme.c.old 2010-02-17 18:33:08
++++ modules/engines/ms-windows/xp_theme.c 2010-02-18 10:36:13
+@@ -150,7 +150,7 @@ static const short element_part_map[XP_T
+ RP_CHEVRON,
+ TP_BUTTON,
+ MENU_POPUPITEM, /*MP_MENUITEM,*/
+- MENU_POPUPSEPARATOR, /*MP_SEPARATOR,*/
++ /*MENU_POPUPSEPARATOR,*/ MP_SEPARATOR,
+ SP_GRIPPER,
+ SP_PANE,
+ GP_LINEHORZ,
============================================================
--- contrib/gtk+-2.16.6.diff 886f94618eaaa9e5e1f0de6c4e1bf4f45eab0c60
+++ contrib/gtk+-2.16.6.diff 886f94618eaaa9e5e1f0de6c4e1bf4f45eab0c60
@@ -0,0 +1,111 @@
+2009-09-19 Arnaud Charlet <charlet@adacore.com>
+
+ * gtk/gtktreemodel.c (gtk_tree_model_row_has_child_toggled): Replace
+ g_return_if_fail by explicit check, since path may legitimately
+ be NULL (I918-021).
+
+2009-01-12 Nicolas Setton <setton@adacore.com>
+
+ * gtktreeview.c (gtk_tree_view_enter_notify): Do not react to
+ crossing events.
+ (gtk_tree_view_leave_notify): Likewise.
+ Prevents unwanted side-effects of synth-crossing. (I106-018)
+
+2009-01-06 Nicolas Setton <setton@adacore.com>
+
+ * gtk/gtktreeview.c (gtk_tree_view_enter_notify): Put kludge to
+ work around Gtk+ bug in handling of keyboard keys+focus events in
+ tree view (HC15-032).
+
+2006-02-23 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/x11/gdkasync.c: #define ANSICPP on Solaris, to work around
+ bug in X11/Xmd.h on Solaris 8.
+
+2003-11-27 Arnaud Charlet <charlet@adacore.com>
+
+ * gtk/gtktextview.c (incremental_validate_callback): Increase amount
+ of characters validated at each call, this gives a better behavior
+ when loading big files.
+ Submitted at http://bugzilla.gnome.org/show_bug.cgi?id=332057
+
+--- gtk/gtktextview.c.old 2006-02-17 16:11:04.000000000 +0100
++++ gtk/gtktextview.c 2006-02-20 17:08:54.691581240 +0100
+@@ -3273,7 +3273,7 @@ incremental_validate_callback (gpointer
+
+ DV(g_print(G_STRLOC"\n"));
+
+- gtk_text_layout_validate (text_view->layout, 2000);
++ gtk_text_layout_validate (text_view->layout, 20000);
+
+ gtk_text_view_update_adjustments (text_view);
+
+--- gdk/x11/gdkasync.c.old Thu Feb 23 11:30:46 2006
++++ gdk/x11/gdkasync.c Thu Feb 23 11:48:14 2006
+@@ -47,6 +47,11 @@ in this Software without prior written a
+ #ifdef NEED_XIPROTO_H_FOR_XREPLY
+ #include <X11/extensions/XIproto.h>
+ #endif
++
++#if defined (sun) && defined (__SVR4)
++#define ANSICPP
++#endif
++
+ #include <X11/Xlibint.h>
+ #include "gdkasync.h"
+ #include "gdkx.h"
+--- gtk/gtktreeview.c.old 2008-11-24 07:35:35.000000000 +0100
++++ gtk/gtktreeview.c 2009-01-06 15:14:25.171875000 +0100
+@@ -5459,6 +5459,9 @@ gtk_tree_view_enter_notify (GtkWidget
+ if (tree_view->priv->tree == NULL)
+ return FALSE;
+
++ if (event->y == 0)
++ return FALSE;
++
+ /* find the node internally */
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+ if (new_y < 0)
+--- gtk/gtktreeview.c.orig 2009-01-12 11:49:09.000000000 +0100
++++ gtk/gtktreeview.c 2009-01-12 15:44:05.000000000 +0100
+@@ -5461,6 +5461,12 @@ gtk_tree_view_enter_notify (GtkWidget
+ GtkRBNode *node;
+ gint new_y;
+
++ if (event->mode == GDK_CROSSING_GRAB
++ || event->mode == GDK_CROSSING_NORMAL
++ || event->mode == GDK_CROSSING_GTK_GRAB
++ || event->mode == GDK_CROSSING_GTK_UNGRAB)
++ return TRUE;
++
+ /* Sanity check it */
+ if (event->window != tree_view->priv->bin_window)
+ return FALSE;
+@@ -5487,7 +5493,10 @@ gtk_tree_view_leave_notify (GtkWidget
+ {
+ GtkTreeView *tree_view;
+
+- if (event->mode == GDK_CROSSING_GRAB)
++ if (event->mode == GDK_CROSSING_GRAB
++ || event->mode == GDK_CROSSING_NORMAL
++ || event->mode == GDK_CROSSING_GTK_GRAB
++ || event->mode == GDK_CROSSING_GTK_UNGRAB)
+ return TRUE;
+
+ tree_view = GTK_TREE_VIEW (widget);
+--- gtk/gtktreemodel.c.old 2009-09-19 12:03:49.804000000 +0200
++++ gtk/gtktreemodel.c 2009-09-19 12:41:00.954000000 +0200
+@@ -1512,8 +1512,11 @@ gtk_tree_model_row_has_child_toggled (Gt
+ GtkTreeIter *iter)
+ {
+ g_return_if_fail (GTK_IS_TREE_MODEL (tree_model));
+- g_return_if_fail (path != NULL);
+- g_return_if_fail (iter != NULL);
++
++ if (path == NULL)
++ return;
++ if (iter == NULL)
++ return;
+
+ g_signal_emit (tree_model, tree_model_signals[ROW_HAS_CHILD_TOGGLED], 0, path, iter);
+ }
============================================================
--- contrib/gtk+-2.18.7.diff 272d25fb3b97154d4022a1ddc58900b338017c49
+++ contrib/gtk+-2.18.7.diff 272d25fb3b97154d4022a1ddc58900b338017c49
@@ -0,0 +1,143 @@
+2010-02-24 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/x11/gdkdnd-x11.c: Fix build on Solaris 8.
+ Submitted at https://bugzilla.gnome.org/show_bug.cgi?id=610966
+
+2010-01-11 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/gdkwindow.c (gdk_window_get_composite_drawable): Protect
+ against NULL access.
+ Observed when creating a new file in GPS under Windows.
+
+2009-09-19 Arnaud Charlet <charlet@adacore.com>
+
+ * gtk/gtktreemodel.c (gtk_tree_model_row_has_child_toggled): Replace
+ g_return_if_fail by explicit check, since path may legitimately
+ be NULL (I918-021).
+
+2009-01-12 Nicolas Setton <setton@adacore.com>
+
+ * gtktreeview.c (gtk_tree_view_enter_notify): Do not react to
+ crossing events.
+ (gtk_tree_view_leave_notify): Likewise.
+ Prevents unwanted side-effects of synth-crossing. (I106-018)
+
+2009-01-06 Nicolas Setton <setton@adacore.com>
+
+ * gtk/gtktreeview.c (gtk_tree_view_enter_notify): Put kludge to
+ work around Gtk+ bug in handling of keyboard keys+focus events in
+ tree view (HC15-032).
+
+2006-02-23 Arnaud Charlet <charlet@adacore.com>
+
+ * gdk/x11/gdkasync.c: #define ANSICPP on Solaris, to work around
+ bug in X11/Xmd.h on Solaris 8.
+
+2003-11-27 Arnaud Charlet <charlet@adacore.com>
+
+ * gtk/gtktextview.c (incremental_validate_callback): Increase amount
+ of characters validated at each call, this gives a better behavior
+ when loading big files.
+ Submitted at http://bugzilla.gnome.org/show_bug.cgi?id=332057
+
+--- gtk/gtktextview.c.old 2006-02-17 16:11:04.000000000 +0100
++++ gtk/gtktextview.c 2006-02-20 17:08:54.691581240 +0100
+@@ -3273,7 +3273,7 @@ incremental_validate_callback (gpointer
+
+ DV(g_print(G_STRLOC"\n"));
+
+- gtk_text_layout_validate (text_view->layout, 2000);
++ gtk_text_layout_validate (text_view->layout, 20000);
+
+ gtk_text_view_update_adjustments (text_view);
+
+--- gdk/x11/gdkasync.c.old Thu Feb 23 11:30:46 2006
++++ gdk/x11/gdkasync.c Thu Feb 23 11:48:14 2006
+@@ -47,6 +47,11 @@ in this Software without prior written a
+ #ifdef NEED_XIPROTO_H_FOR_XREPLY
+ #include <X11/extensions/XIproto.h>
+ #endif
++
++#if defined (sun) && defined (__SVR4)
++#define ANSICPP
++#endif
++
+ #include <X11/Xlibint.h>
+ #include "gdkasync.h"
+ #include "gdkx.h"
+--- gtk/gtktreeview.c.old 2008-11-24 07:35:35.000000000 +0100
++++ gtk/gtktreeview.c 2009-01-06 15:14:25.171875000 +0100
+@@ -5459,6 +5459,9 @@ gtk_tree_view_enter_notify (GtkWidget
+ if (tree_view->priv->tree == NULL)
+ return FALSE;
+
++ if (event->y == 0)
++ return FALSE;
++
+ /* find the node internally */
+ new_y = TREE_WINDOW_Y_TO_RBTREE_Y(tree_view, event->y);
+ if (new_y < 0)
+--- gtk/gtktreeview.c.orig 2009-01-12 11:49:09.000000000 +0100
++++ gtk/gtktreeview.c 2009-01-12 15:44:05.000000000 +0100
+@@ -5461,6 +5461,12 @@ gtk_tree_view_enter_notify (GtkWidget
+ GtkRBNode *node;
+ gint new_y;
+
++ if (event->mode == GDK_CROSSING_GRAB
++ || event->mode == GDK_CROSSING_NORMAL
++ || event->mode == GDK_CROSSING_GTK_GRAB
++ || event->mode == GDK_CROSSING_GTK_UNGRAB)
++ return TRUE;
++
+ /* Sanity check it */
+ if (event->window != tree_view->priv->bin_window)
+ return FALSE;
+@@ -5487,7 +5493,10 @@ gtk_tree_view_leave_notify (GtkWidget
+ {
+ GtkTreeView *tree_view;
+
+- if (event->mode == GDK_CROSSING_GRAB)
++ if (event->mode == GDK_CROSSING_GRAB
++ || event->mode == GDK_CROSSING_NORMAL
++ || event->mode == GDK_CROSSING_GTK_GRAB
++ || event->mode == GDK_CROSSING_GTK_UNGRAB)
+ return TRUE;
+
+ tree_view = GTK_TREE_VIEW (widget);
+--- gtk/gtktreemodel.c.old 2009-09-19 12:03:49.804000000 +0200
++++ gtk/gtktreemodel.c 2009-09-19 12:41:00.954000000 +0200
+@@ -1512,8 +1512,11 @@ gtk_tree_model_row_has_child_toggled (Gt
+ GtkTreeIter *iter)
+ {
+ g_return_if_fail (GTK_IS_TREE_MODEL (tree_model));
+- g_return_if_fail (path != NULL);
+- g_return_if_fail (iter != NULL);
++
++ if (path == NULL)
++ return;
++ if (iter == NULL)
++ return;
+
+ g_signal_emit (tree_model, tree_model_signals[ROW_HAS_CHILD_TOGGLED], 0, path, iter);
+ }
+--- gdk/gdkwindow.c.old 2009-12-08 16:13:05.000000000 +0100
++++ gdk/gdkwindow.c 2010-01-10 20:33:05.783000000 +0100
+@@ -3858,7 +3858,7 @@ gdk_window_get_composite_drawable (GdkDr
+ width, height);
+
+ /* paint the backing stores */
+- if (implicit_paint)
++ if (implicit_paint && list != NULL)
+ {
+ GdkWindowPaint *paint = list->data;
+
+--- gdk/x11/gdkdnd-x11.c.old 2010-02-13 01:28:51.000000000 +0100
++++ gdk/x11/gdkdnd-x11.c 2010-02-24 17:05:07.428011000 +0100
+@@ -27,6 +27,7 @@
+ #include "config.h"
+ #include <X11/Xlib.h>
+ #include <X11/Xatom.h>
++#include <X11/Xutil.h>
+ #include <X11/extensions/shape.h>
+
+ #include <string.h>
============================================================
--- contrib/pygobject-2.18.0.diff 80dccaf30dea2450b944cb363a19534bf8f85001
+++ contrib/pygobject-2.18.0.diff 80dccaf30dea2450b944cb363a19534bf8f85001
@@ -0,0 +1,68 @@
+ * Fixes build with --disable-thread
+ Submitted at: http://bugzilla.gnome.org/show_bug.cgi?id=374603
+
+--- gobject/pygobject-private.h.orig Wed May 13 23:56:45 2009
++++ gobject/pygobject-private.h Tue Jul 21 09:02:57 2009
+@@ -32,12 +32,18 @@ extern struct _PyGObject_Functions pygob
+
+ #define pyg_threads_enabled (pygobject_api_functions.threads_enabled)
+
++#ifdef DISABLE_THREADING
++#define pyg_gil_state_ensure() 0
++#define pyg_gil_state_release(state) G_STMT_START { \
++ } G_STMT_END
+
++#else
+ #define pyg_gil_state_ensure() (pygobject_api_functions.threads_enabled? (PyGILState_Ensure()) : 0)
+ #define pyg_gil_state_release(state) G_STMT_START { \
+ if (pygobject_api_functions.threads_enabled) \
+ PyGILState_Release(state); \
+ } G_STMT_END
++#endif
+
+ #define pyg_begin_allow_threads \
+ G_STMT_START { \
+--- glib/pyglib.c.old 2009-07-21 10:32:50.000000000 +0200
++++ glib/pyglib.c 2009-07-21 11:29:23.000000000 +0200
+@@ -107,7 +107,11 @@ pyglib_gil_state_ensure(void)
+ if (!_PyGLib_API->threads_enabled)
+ return PyGILState_LOCKED;
+
++#ifdef DISABLE_THREADING
++ return PyGILState_LOCKED;
++#else
+ return PyGILState_Ensure();
++#endif
+ }
+
+ void
+@@ -118,7 +122,9 @@ pyglib_gil_state_release(PyGILState_STAT
+ if (!_PyGLib_API->threads_enabled)
+ return;
+
++#ifndef DISABLE_THREADING
+ PyGILState_Release(state);
++#endif
+ }
+
+ /**
+@@ -184,13 +190,19 @@ _pyglib_notify_on_enabling_threads(PyGLi
+ int
+ pyglib_gil_state_ensure_py23 (void)
+ {
++#ifdef DISABLE_THREADING
++ return 0;
++#else
+ return PyGILState_Ensure();
++#endif
+ }
+
+ void
+ pyglib_gil_state_release_py23 (int flag)
+ {
++#ifndef DISABLE_THREADING
+ PyGILState_Release(flag);
++#endif
+ }
+
+ /**
============================================================
--- contrib/pygobject-2.21.1.diff 397690d8c804d1a9cff28b4b823ba43ef5fd4881
+++ contrib/pygobject-2.21.1.diff 397690d8c804d1a9cff28b4b823ba43ef5fd4881
@@ -0,0 +1,48 @@
+ * Fixes build with --disable-thread
+ Submitted at: http://bugzilla.gnome.org/show_bug.cgi?id=374603
+
+--- gobject/pygobject-private.h.orig Wed May 13 23:56:45 2009
++++ gobject/pygobject-private.h Tue Jul 21 09:02:57 2009
+@@ -32,12 +32,18 @@ extern struct _PyGObject_Functions pygob
+
+ #define pyg_threads_enabled (pygobject_api_functions.threads_enabled)
+
++#ifdef DISABLE_THREADING
++#define pyg_gil_state_ensure() 0
++#define pyg_gil_state_release(state) G_STMT_START { \
++ } G_STMT_END
+
++#else
+ #define pyg_gil_state_ensure() (pygobject_api_functions.threads_enabled? (PyGILState_Ensure()) : 0)
+ #define pyg_gil_state_release(state) G_STMT_START { \
+ if (pygobject_api_functions.threads_enabled) \
+ PyGILState_Release(state); \
+ } G_STMT_END
++#endif
+
+ #define pyg_begin_allow_threads \
+ G_STMT_START { \
+--- glib/pyglib.h.old 2009-06-17 22:48:38.000000000 +0200
++++ glib/pyglib.h 2010-01-28 11:03:09.000000000 +0100
+@@ -28,6 +28,9 @@
+
+ G_BEGIN_DECLS
+
++#define PyGILState_Ensure() 0
++#define PyGILState_Release(x) do {} while (0)
++
+ typedef void (*PyGLibThreadsEnabledFunc) (void);
+ typedef void (*PyGLibThreadBlockFunc) (void);
+
+--- gobject/pygobject.h.old 2010-01-29 08:28:30.000000000 +0100
++++ gobject/pygobject.h 2010-01-29 08:28:53.000000000 +0100
+@@ -9,6 +9,9 @@
+
+ G_BEGIN_DECLS
+
++#define PyGILState_Ensure() 0
++#define PyGILState_Release(x) do {} while (0)
++
+ /* This is deprecated, don't use */
+ #define PYGIL_API_IS_BUGGY FALSE
+
============================================================
--- aclocal.m4 ef4fcd7ab8e103b3bf67d9ae454422f4e940ecb4
+++ aclocal.m4 bd6dd214273d1df21a52647496c8847a2654e089
@@ -573,15 +573,20 @@ AC_DEFUN(AM_CHECK_OPENGL,
AC_ARG_WITH(GL, [ --with-GL=value Which OpenGL library to compile GtkAda with (auto,GL,MesaGL,no)])
AC_ARG_WITH(GL-prefix, [ --with-GL-prefix=DIR Prefix where GL/MesaGL is installed])
-
if test "x$with_GL_prefix" = "x" ; then
GL_LDOPTS=""
GL_CFLAGS=""
else
- GL_LDOPTS="-L$with_GL_prefix/lib"
GL_CFLAGS="-I$with_GL_prefix/include"
+ case "${host}" in
+ *64*)
+ GL_LDOPTS="-L$with_GL_prefix/lib64"
+ ;;
+ *)
+ GL_LDOPTS="-L$with_GL_prefix/lib"
+ ;;
+ esac
fi
-
saved_LIBS="$LIBS"
============================================================
--- configure bcd142d75c0713ecb3dc2b0fecda10372b998e94
+++ configure d661cc5f697815d3ea6c56cd34be9092a1c0d3ad
@@ -1,5 +1,5 @@
#! /bin/sh
-# From configure.in Revision: 124002 .
+# From configure.in Revision: 156012 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.57.
#
@@ -3492,16 +3492,21 @@ fi;
fi;
-
if test "x$with_GL_prefix" = "x" ; then
GL_LDOPTS=""
GL_CFLAGS=""
else
- GL_LDOPTS="-L$with_GL_prefix/lib"
GL_CFLAGS="-I$with_GL_prefix/include"
+ case "${host}" in
+ *64*)
+ GL_LDOPTS="-L$with_GL_prefix/lib64"
+ ;;
+ *)
+ GL_LDOPTS="-L$with_GL_prefix/lib"
+ ;;
+ esac
fi
-
saved_LIBS="$LIBS"
if test "x$with_GL" != xno ; then
============================================================
--- contrib/README 53ec377f471be3e7d085c1a08bbed1d07044bf9a
+++ contrib/README 8e9b9dd6454ff90995161d1524b4d98f4f5c8ab8
@@ -5,24 +5,24 @@ binding.pl: perl script used to automate
binding.pl: perl script used to automate generation and update of GtkAda files.
-gtk+-2.18.6.diff: a patch against Gtk+ sources containing some
+gtk+-2.18.7.diff: a patch against Gtk+ sources containing some
improvements/fixes not incorporated yet.
-gtk+-2.18.6-win32.diff: ditto for Windows
+gtk+-2.16.6-win32.diff: ditto for Windows
-glib-2.22.4.diff: ditto for glib
+glib-2.23.4.diff: ditto for glib
-glib-2.22.4-win32.diff: ditto for Windows
+glib-2.23.4-win32.diff: ditto for Windows
-cairo-1.8.8.diff: ditto for cairo
+cairo-1.8.10.diff: ditto for cairo
-cairo-1.8.8-win32.diff: ditto for cairo under Windows
+cairo-1.8.10-win32.diff: ditto for cairo under Windows
pixman-0.15.12.diff: ditto for pixman
pixman-0.15.12-win32.diff: ditto for pixman under Windows
-pango-1.26.1.diff: ditto for pango
+pango-1.26.2.diff: ditto for pango
pango-1.20.3-win32.diff: ditto for pango under Windows
pango-1.26.1-win32.diff: ditto for pango under Windows
============================================================
--- contrib/pango-1.26.1.diff 531522a0f5422e89c61a075aeb62362d29956e1a
+++ contrib/pango-1.26.2.diff 58fa0101ed1829b6aa355012b17a1123303a6216
@@ -7,7 +7,7 @@
#define HB_COMMON_H
+#ifdef sun
-+#include <sys/inttypes.h>
++#include <inttypes.h>
+#else
#include <stdint.h>
+#endif
============================================================
--- src/gtk-enums.ads 530680cac74db7b197195e912ce32b9aec3c6970
+++ src/gtk-enums.ads 97e99d580f5c41a6b3ce2e116a24fb70467beced
@@ -2,7 +2,7 @@
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
--- Copyright (C) 2000-2006, AdaCore --
+-- Copyright (C) 2000-2010, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or --
-- modify it under the terms of the GNU General Public --
@@ -475,6 +475,8 @@ package Gtk.Enums is
Generic_Internal_Discrete_Property (Gtk_Metric_Type);
package Pack_Type_Properties is new
Generic_Internal_Discrete_Property (Gtk_Pack_Type);
+ package Icon_Size_Properties is new
+ Generic_Internal_Discrete_Property (Gtk_Icon_Size);
type Property_Gtk_Relief_Style is new Relief_Style_Properties.Property;
type Property_Gtk_Resize_Mode is new Resize_Mode_Properties.Property;
@@ -497,6 +499,7 @@ package Gtk.Enums is
type Property_Sort_Type is new Sort_Type_Properties.Property;
type Property_Metric_Type is new Metric_Type_Properties.Property;
type Property_Pack_Type is new Pack_Type_Properties.Property;
+ type Property_Gtk_Icon_Size is new Icon_Size_Properties.Property;
-----------------
-- Obsolescent --
============================================================
--- src/gtk-toolbar.ads 3b2f216a48641a8d1d9050e585923172420f225e
+++ src/gtk-toolbar.ads a105af5adf57ea05a80186ef517672aa2cf58563
@@ -2,7 +2,7 @@
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
--- Copyright (C) 2000-2007 AdaCore --
+-- Copyright (C) 2000-2010, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or --
-- modify it under the terms of the GNU General Public --
@@ -395,6 +395,7 @@ package Gtk.Toolbar is
Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type;
Space_Size_Property : constant Glib.Properties.Property_Int;
Space_Style_Property : constant Gtk.Enums.Property_Toolbar_Space_Style;
+ Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size;
-------------
-- Signals --
@@ -474,6 +475,8 @@ private
Glib.Properties.Build ("internal-padding");
Shadow_Type_Property : constant Gtk.Enums.Property_Gtk_Shadow_Type :=
Gtk.Enums.Build ("shadow-type");
+ Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size :=
+ Gtk.Enums.Build ("icon-size");
Space_Size_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("space-size");
Space_Style_Property : constant Gtk.Enums.Property_Toolbar_Space_Style :=
============================================================
--- src/opengl/gl_h.ads 756a57fcab1c7bb4dce9a4536644210decad7a42
+++ src/opengl/gl_h.ads 9a990b321c3af85868758a63ef9564cb05c83c3a
@@ -1,3 +1,24 @@
+-----------------------------------------------------------------------
+-- GtkAda - Ada95 binding for Gtk+/Gnome --
+-- --
+-- Copyright (C) 2001-2010, AdaCore --
+-- --
+-- This library is free software; you can redistribute it and/or --
+-- modify it under the terms of the GNU General Public --
+-- License as published by the Free Software Foundation; either --
+-- version 2 of the License, or (at your option) any later version. --
+-- --
+-- This library is distributed in the hope that it will be useful, --
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of --
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
+-- General Public License for more details. --
+-- --
+-- You should have received a copy of the GNU General Public --
+-- License along with this library; if not, write to the --
+-- Free Software Foundation, Inc., 59 Temple Place - Suite 330, --
+-- Boston, MA 02111-1307, USA. --
+-----------------------------------------------------------------------
+--
-- Generated from GL/gl.h
-- Date: Wed Sep 22 12:47:08 1999
--
@@ -58,6 +79,21 @@ package gl_h is
GL_DOUBLE : constant GLenum := 16#140A#;
-- Primitives (see glBegin)
+ -- GL_POINTS => each vertex set by glVertex* is one point to draw on the
+ -- screen
+ -- GL_LINES => each pair of vertex is one line
+ -- GL_TRIANGLES => each group of three vertices is a triangle
+ -- GL_TRIANGLE_STRIP => first three vertices are a triangle, then each new
+ -- vertex is combined with the previous two to build a new
+ -- triangle. The triangles are [123], [234], [345],...
+ -- GL_TRIANGLE_FAN => first vertex is the central vertex, then each vertex
+ -- is combined with previous to make a triangle. So the
+ -- triangles are [123], [134], [145],...
+ -- GL_QUADS => Each group of four vertices is a quadrilateral
+ -- GL_QUAD_STRIP => first four vertices are one polygon, then each pair of
+ -- vertices are combined with the previous two.
+ -- GL_POLYGON => A single polygon
+
GL_POINTS : constant GLenum := 0;
GL_LINES : constant GLenum := 1;
GL_LINE_LOOP : constant GLenum := 2;
@@ -913,6 +949,7 @@ package gl_h is
procedure glLoadMatrixf (m : access GLfloat);
procedure glMultMatrixd (m : access GLdouble);
procedure glMultMatrixf (m : access GLfloat);
+
procedure glRotated (angle : GLdouble;
x : GLdouble;
y : GLdouble;
@@ -921,6 +958,8 @@ package gl_h is
x : GLfloat;
y : GLfloat;
z : GLfloat);
+ -- The angle is specified in degrees, counter-clockwise.
+
procedure glScaled (x : GLdouble; y : GLdouble; z : GLdouble);
procedure glScalef (x : GLfloat; y : GLfloat; z : GLfloat);
procedure glTranslated (x : GLdouble; y : GLdouble; z : GLdouble);