The bulk of the fix is to walk the chain of ancestors, starting at the
root level, and check if the visibility of any of the ancestors has
changed. If yes, the necessary signals are emitted so that this change
is propagated properly. This walk is done after a node has been
inserted, changed or deleted, see function
gtk_tree_model_filter_check_ancestors().
Bug reported, and initial debugging and analysis, by Xavier Claessens.
Suggested by Xavier Claessens / bug 621076.
(Additional obseration: this should speed up the filter model's
handling of row-inserted as a binary search is now used instead
of a linear scan).
-Only define HAVE_STRINGS_H when MSVC is not used
-Define HVE_STDINT_H for Visual C++ 2010 and later, as Visual C++ 2010
does ship with a "proper" stdint.h by default
-Add check macros HAVE_RINT and HAVE_ROUND--they are only defined when
MSVC is not used
-Remove obsolete check macros
gtk/gtkborderimage.c, gtk/gtklabel.c and gtk/gtkstyleproperty.c call
round() and/or rint(), which was only available in C99 compilers.
This adds the inclusion of the fallback implementation (gtk/fallback-c89.c)
to define these functions if they are not initially made available by the
compiler.
Also remove the rint() implementation in gtk/gtklabel.c as it is now in
the fallback implmentation.
Add an implementation for rint() and round() for compilers that do not
define one or both of them. Note that this file should be included
after config.h was included.
Copy the Win32-specific GDK backend headers during the "install" stage
as well, as they were missed in the install, causing trouble when
building other projects like WebKitGTK+.
Thanks to greg.hellings for pointing this out in Bug 653964.