+Thu Oct 1 10:40:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkclist.h (gtk_clist_prepend):
+ * gtk/gtkclist.c (gtk_clist_prepend): new function.
+ (gtk_clist_insert): added g_return_val_if_fail()
+ statements. accept a row parameter < 0 or > clist->rows to indicate
+ append mode.
+ (real_clear): first clean up all internal pointers and lists (e.g.
+ clist->row_list or clist->rows), then delete the distinct rows. this
+ is required because of destroy notifiers, we need to have all internal
+ structures updated and be reentrant.
+
+ * gtk/gtkcalendar.h:
+ * gtk/gtkcalendar.c: removed the `gtk_calendar_' prefix from the
+ GtkCalendarClass signal methods.
+ GtkType and macro fixups, put `void' into () prototypes, avoid C++
+ style comments, indentation fixes, fixed some g_return_if_fail()
+ statements.
+ (gtk_calendar_paint_header):
+ (gtk_calendar_paint_day_names):
+ (gtk_calendar_paint_week_numbers):
+ (gtk_calendar_paint_main): made these static functions.
+ (gtk_calendar_select_month):
+ (gtk_calendar_select_day):
+ (gtk_calendar_mark_day):
+ (gtk_calendar_unmark_day):
+ (gtk_calendar_get_date): signedness corrections, use guints
+ rather than gints.
+ (gtk_calendar_size_request): removed unused variables.
+
+Wed Sep 30 13:11:09 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkitemfactory.c (gtk_item_factory_add_item): list all
+ widgets in the ->widgets_by_action list that have a callback
+ defined (not only those with a callback_action!=0).
+
+Sun Sep 27 22:02:48 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
+
+ * gtk/gtkcalendar.h:
+ gtk/gtkcalendar.c:
+ examples/calendar/gcalendar.c: remove HAVE_FEATURES stuff
+
+Sun Sep 27 02:18:06 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
+
+ * gtk/gtkcalendar.h:
+ gtk/gtkcalendar.c:
+ examples/calendar: Added gtkcalendar widget and demo
+
+Sat Sep 26 06:15:34 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkclist.c (gtk_clist_sort):
+ (gtk_clist_clear):
+ (gtk_clist_unselect_all):
+ (gtk_clist_select_all): adde g_return_if_fail() statements.
+
+Sat Sep 26 04:46:22 1998 Tim Janik <timj@gtk.org>
+
+ * configure.in: set binary age and interface age to 0.
+
+ * gtk/gtkspinbutton.h:
+ * gtk/gtkspinbutton.c: changed gtk_spin_button_construct to
+ gtk_spin_button_configure. gtk_spin_button_construct is still defined
+ as an alias for gtk_spin_button_configure for source compatibility,
+ but actuall use is deprecated.
+ typeness corrections, i.e. gint->gboolean and gint->guint.
+ added object arguments: GtkSpinButton::value, GtkSpinButton::wrap,
+ GtkSpinButton::shadow_type, GtkSpinButton::update_policy,
+ GtkSpinButton::numeric, GtkSpinButton::snap_to_ticks,
+ GtkSpinButton::adjustment, GtkSpinButton::digits and
+ GtkSpinButton::climb_rate.
+ GtkType and macro fixups.
+
+Sat Sep 25 23:33:55 1998 Tim Janik <timj@gtk.org>
+
+ * gdk/gdkwindow.c (gdk_window_get_root_origin): new function to get
+ the *real* geometry position of a window, taken possible window
+ manager offsets into account.
+ this has been succesfully tested with fvwm, fvwm-2, bowman, olwm,
+ olvwm, twm, ctwm, mlvwm, windowmaker and enlightenment.
+ it does fail though for amiwm which adds windows to a pseudo root
+ window, and for icewm by a small offset because it defines the
+ geometry position whithin its border.
+
+ * gtk/testgtk.c: added "saved position" test to figure how
+ gdk_window_get_root_origin() interacts with window managers (repopup
+ this window to figure ;).
+
+Wed Sep 23 06:09:19 1998 Tim Janik <timj@gtk.org>
+
+ * configure.in: update to Gtk+ version 1.1.3, binary age 1,
+ interface age 1.
+
+ * gtk/gtkobject.c
+ (gtk_object_ref):
+ (gtk_object_unref): check for ->ref_count to be greater than 0 (the
+ existing code was buggy in letting ->ref_count==0 pass through and
+ then failing the living_objs_ht assertion).
+
+ * gtk/gtkclist.c (draw_row): fix chopping bug for right justified
+ pixtext fields (Roman Pozlevich <roma@botik.ru>).
+
+Mon Sep 21 23:53:18 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
+
+ * Released GTK+ 1.1.2
+
+Mon Sep 21 01:12:44 1998 Jay Cox (jaycox@earthlink.net)
+
+ * gtk/Makefile.am: use $(PERL) instead of perl
+ * gtk/gtkcolorsel.c: render properly in non-square aspect ratios.
+ also much faster to render.
+
+Mon Sep 21 07:44:30 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkobject.c (gtk_object_class_add_signals): reallocate
+ the required memory block, rather than allocating it newly from
+ scratch and doing a full-blown block copy on it.
+
+Mon Sep 21 02:30:06 1998 Tim Janik <timj@gtk.org>
+
+ * NEWS file update for upcoming release of Gtk+ version 1.1.2,
+ binary age 0, interface age 0.
+
+ * gtk/gtkmain.c (gtk_init): enforce gtk-modules to always be resident.
+
+Sun Sep 20 18:21:46 1998 Owen Taylor <otaylor@redhat.com>
+
+ * ltconfig.sh: Patch to libtool-1.2b to make --disable-static
+ work.
+
+Sun Sep 20 09:52:39 1998 Owen Taylor <otaylor@gtk.org>
+
+ * HACKING: indent other than GNU indent should be OK
+ now.
+
+ * gtk/genmarshal.pl gtk/Makefile.am: Call indent on file
+ instead of piping through indent. If indent wasn't
+ found in ./configure don't bother indenting at
+ all.
+
+Fri Sep 18 19:11:10 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gdk/gdk.h: Add names to prototype for gdk_image_new_bitmap.
+
+Fri Sep 18 18:54:59 1998 Jay Cox (jaycox@earthlink.net)
+
+ * gtk/Makefile.am: use $(AWK) instead of awk
+
+1998-09-18 Raja R Harinath <harinath@cs.umn.edu>
+
+ * gtk/Makefile.am (gdk_headers):
+ Remove references to $(top_srcdir).
+ (gtk.defs, gtktypebuiltins{.h,_vars.c,_ids.c,_evals.c}): Simplify.
+ * gtk/makeenums.pl (parse_entries): Don't look for $srcdir.
+
+Fri Sep 18 19:58:24 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkobject.h (struct _GtkObject): changed gpointer object_data; to
+ GData*object_data to cure compiler warnings.
+
+Thu Sep 17 19:06:47 PDT 1998 Manish Singh <yosh@gimp.org>
+
+ * install-sh
+ * missing
+ * mkinstalldirs: updated to latest automake version
+
+1998-09-17 Raja R Harinath <harinath@cs.umn.edu>
+
+ * gtk/Makefile.am (source_headers): Move `gtkfeature.h' ...
+ (gtkinclude_HEADERS): ... here.
+ (gtk.defs): Pass `g' flag to sed, to replace all occurances.
+
+Thu Sep 17 10:49:51 1998 Raph Levien <raph@gimp.org>
+
+ * HACKING: added GNU indent, as it is now required to successfully
+ build gtk+. Should this be detected in autoconf, possibly?
+
+Tue Sep 15 14:57:30 1998 Owen Taylor <otaylor@redhat.com>
+
+ * Makefile.am gtk-config.in l*: Update to libtool-1.2b,
+ change library versioning scheme to drop LT_RELEASE
+ from the -l line, while keeping it in the soname.
+
+Tue Sep 15 14:10:33 1998 Owen Taylor <otaylor@redhat.com>
+
+ * configure.in Makefile.in: define a MAINT-like variable REBUILD
+ which is set if Perl and awk are found, and autogenerated sources
+ can be rebuilt. Remove the auto-generated sources from
+ CVS.
+
+ Add dependencies so that the autogenerated sources are
+ rebuilt if the files they depend on change.
+ (This unfortunately currently results in the entire
+ gtk/ directory being rebuilt when any header changes.
+ Moving all enums to gtkenums.h would fix this.)
+
+Thu Sep 17 05:12:48 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkobject.h: added gtk_object_set_data_destroy and
+ gtk_object_set_data_destroy_by_id functions to set the destroy
+ function pointer for an existing data portion.
+
+ * gtk/gtkobject.c: removed the GtkObjectData implementation and
+ made all gtk_object_*data* functions use the GLib equivalents.
+
+1998-09-16 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ * gtk/gtktoolbar.c (gtk_toolbar_insert_element): Test whether type
+ is not equal to GTK_TOOLBAR_CHILD_RADIOBUTTON before checking that
+ (widget != NULL), otherwise radio button insertion will not work
+ -- the widget argument is NULL for the first radio button in the
+ group.
+
+Tue Sep 15 13:09:24 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gdk/gdkimage.c (gdk_image_new): Reverted global changes
+ of g_new to malloc(), added back in the one place where
+ it actually mattered. #include <stdlib.h>.
+
+ * gdk/gdkrgb.c: g_malloc() to malloc() as above.
+
+Tue Sep 15 11:30:03 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkfilesel.c: Keep a list of directories in which we never
+ want to stat the entries (like /afs), and assume everything in
+ those directories is a subdirectory.
+
+ - When following a path, try to open components even when
+ we don't find them in their parent's directory to
+ support automounters.
+
+Tue Sep 15 11:06:13 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkwindow.c (gtk_window_move_resize): Don't request
+ a new size from the WM if we asked for the same size
+ before and our request was rejected.
+
+ * gtk/gtkwindow.c (gtk_window_configure_event): If
+ in response to a request, we get a configure event
+ with unchanged dimensions, send a synthetic expose
+ since ForgetGravity won't expose our window.
+
+Mon Sep 14 14:28:24 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktext.c (adjust_adj): Change the way we
+ set the adjustments on resize so that it tries to
+ keep the beginning of the text in approximately
+ the same place.
+
+ Removed assertion that the above change made invalid.
+
+Thu Sep 10 22:19:35 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktext.c: - Save first_cut_pixels when switching
+ sizes, so that if we switch to the _same_ size,
+ we don't move lines around.
+
+ - Make sure that the text area always has a size of at
+ least 1x1, then do all computations when realized.
+
+ - When fetching lines in recompute_geometry, make
+ sure we fetch enough lines to cover the screen.
+
+Mon Sep 14 21:47:35 CDT 1998 Shawn T. Amundson <amundson@gtk.org>
+
+ * gdk/gdkimage.c: changed g_new()s to malloc()s and
+ g_free()s to free()s to avoid mixing g_new()s with
+ free()s. X itself uses free() on some of the
+ malloced memory.
+
+Sat Sep 12 10:44:06 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtkfilesel.c: Maintain a list of directories like
+ /afs we know contain only directories, and avoid
+ stat'ing files in those directories. (Because
+ stat'ing all files in /afs is extremely expensive)
+
+ To support automounters, try to open directories,
+ even if we couldn't find them when reading their
+ parent directory.
+
+Thu Sep 3 10:29:03 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk.m4: Conditionalize check for GTK_MAJOR_VERSION,
+ to allow the same gtk.m4 to work for 1.0.x and
+ 1.1.x.
+
+Fri Sep 11 15:25:10 1998 Lars Hamann <lars@gtk.org>
+
+ * gtk/gtkclist.c (gtk_clist_set_selectable): new function
+ to set/unset the selectable flag of a single row.
+ (gtk_clist_get_selectable): new function
+ to get the state of the selectable flag
+
+ * gtk/gtkctree.c (gtk_ctree_node_set_selectable)
+ (gtk_ctree_node_get_selectable): clist analogons
+
+Thu Sep 10 17:04:03 1998 Raph Levien <raph@gimp.org>
+
+ * gtk/testrgb.c (testrgb_rgb_test): Small changes to the test
+ pattern.
+
+ * gdk/gdkrgb.c (gdk_rgb_convert_gray4_pack): Fixed some alignment
+ bugs in the 4bit gray cases.
+
+Wed Sep 9 02:48:44 PDT 1998 Manish Singh <yosh@gimp.org>
+
+ * configure.in: added -posix check for NeXTStep
+
+ * gtk/testthreads.c: applied part of gtk-joke-980907-0 to use
+ a unique buffer for each thread.
+
+ * docs/gtk-config.1: clarified copyright
+
+Tue Sep 8 05:19:51 1998 Tim Janik <timj@gtk.org>
+
+ * gdk/gdk.c (gdk_init): use g_atexit() instead of ATEXIT.
+
+ * gtk/gtkmain.c (gtk_init): use g_atexit() instead of ATEXIT.
+
+ * gtk/gtkobject.c (gtk_object_init_type): use g_atexit() instead of
+ ATEXIT.
+
+ * ltconfig: use GLib's ltconfig which honours lcc.
+
+Mon Sep 7 20:09:23 PDT 1998 Manish Singh <yosh@gimp.org>
+
+ * configure.in: comment the -std1 check and save LIBS properly
+
+Sun Sep 6 12:36:23 PDT 1998 Manish Singh <yosh@gimp.org>
+
+ * gtk/testrgb.c: #include <stdlib.h>
+
+Sat Sep 5 16:01:19 1998 Owen Taylor <otaylor@gtk.org>
+
+ * gdk/gdkinputxfree.h gdk/gdk.c gdk/gdkinputgxi.h:
+ When the pointer is grabbed on an input window,
+ either explicitely, or through press-grab, and
+ then grabbed on a non-input window, ungrab the
+ devices.
+
+Sat Sep 5 07:13:19 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtktypeutils.h: don't include any gdk headers.
+ added structure definitions for GtkTypeObject and GtkTypeClass,
+ which cover the very basic fields of GtkObject and GtkObjectClass,
+ which are actually used by the type system.
+
+ * gtk/gtktypeutils.c: don't include gtkobject.h or gtkcontainer.h,
+ we only refer to our own structures. improved class inheritance
+ sanity checking a bit.
+
+ * gtk/gtkobject.h: placed appropriate comments at the beginnings
+ of the GtkObject and GtkObjectClass structures, which explain
+ their relationship to GtkTypeObject and GtkTypeClass.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtkobject.h:
+ moved GTK_STRUCT_OFFSET(), GTK_CHECK_CAST(), GTK_CHECK_CLASS_CAST(),
+ GTK_CHECK_TYPE() and GTK_CHECK_CLASS_TYPE() macro definitions from
+ gtkobject.h to gtktypeutils.h.
+
+ * gtk/gtkobject.h:
+ * gtk/gtkobject.c:
+ removed gtk_object_check_cast() and gtk_object_check_class_cast()
+ functions. to keep source compatibility, we can provide macro aliases
+ for the corresponding gtk_type_* functions. but then again, people
+ shouldn't have been using these functions anyways since they were part
+ of Gtk's internal API.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c:
+ implemented gtk_type_check_object_cast() and gtk_type_check_class_cast()
+ functions to check GtkTypeObject and GtkTypeClass types.
+
+Thu Sep 3 07:16:54 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: `const' fixups.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: `const' fixups and some coding style adaptions.
+
+ * gtk/gtkctree.c (gtk_ctree_insert_node): don't dereference *text
+ if it is passed as NULL.
+
+Wed Sep 2 22:41:40 1998 Raph Levien <raph@gimp.org>
+
+ * gdk/gdkrgb.c (gdk_rgb_select_conv): Fixed 32bpp image depth
+ big-endian cases. Added a 4bpp packed gray mode (somewhat
+ incorrectly hardwired to MSB), which should take care of
+ Stric's hardware.
+
+Thu Sep 3 04:45:57 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkaccelgroup.c (gtk_accel_group_add): plug another small
+ GtkSIgnalQuery leak.
+
+Thu Sep 3 04:22:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkmenushell.c (gtk_real_menu_shell_move_current):
+ GTK_MENU_DIR_CHILD: check for the existance of
+ menu_shell->active_menu_item before accessing its child.
+ GTK_MENU_DIR_PREV:
+ GTK_MENU_DIR_NEXT: if we haven't had an active item and still
+ don't, make a default selection.
+
+Wed Sep 2 00:28:58 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkwidget.c (gtk_widget_propagate_state): iterate
+ the children with _forall for sensitivity changes and with
+ _foreach on pure state changes. this fixes a lot of the
+ old inclusions of internal widgets into _foreach calls.
+
+ * gtk/gtktree.c: removed gtk_tree_foreach, let gtk_tree_forall
+ do the work. don't walk the subtrees of first level children.
+
+ * gtk/gtktreeitem.c: provide a _forall implementation,
+ which walks the subtrees as well for include_internals.
+
+ * gtk/gtkmenuitem.c: provide a _forall implementation, which walks
+ the submenus as well for include_internals.
+
+ * gtk/gtkscrolledwindow.c: removed gtk_scrolled_window_foreach and
+ implemented gtk_scrolled_window_forall, which will iterate over
+ the viewport and the scrollbars for gtk_container_forall or
+ iterate over the viewports children for gtk_container_foreach.
+
+ * gtk/gtktoolbar.c:
+ * gtk/gtktable.c:
+ * gtk/gtkpaned.c:
+ * gtk/gtkpacker.c:
+ * gtk/gtkmenushell.c:
+ * gtk/gtklist.c:
+ * gtk/gtkfixed.c:
+ * gtk/gtkclist.c:
+ * gtk/gtkbox.c:
+ * gtk/gtkbin.c:
+ * gtk/gtknotebook.c:
+ removed the old gtk_*_foreach functions and provided gtk_*_forall.
+
+ * gtk/gtknotebook.c:
+ (gtk_notebook_real_switch_page): expose tabs.
+ (gtk_notebook_page_num): new function to return the page number
+ of a distinct child.
+ (gtk_notebook_focus): minor fixups. foxus handling is still screwed
+ under some circumstances.
+
+ * gtk/gtktreeitem.c:
+ (gtk_real_tree_item_select):
+ (gtk_real_tree_item_deselect): major fixes.
+ some general fixups wrt queue_redraw, and tree items not being
+ NO_WINDOW widgets.
+
+ * gtk/gtklistitem.c:
+ (gtk_real_list_item_select):
+ (gtk_real_list_item_deselect):
+ (gtk_real_list_item_toggle):
+ removed unneccessary queue_redraw calls.
+
+Wed Aug 30 09:42:07 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkoptionmenu.c: allow optionmenus to have the focus and
+ automatically popup the menu on space bar.
+
+Wed Aug 26 06:40:34 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkcontainer.h:
+ * gtk/gtkcontainer.c: implemented gtk_container_forall() (as a class
+ method), which acts similar to gtk_container_foreach(), but iterates
+ over internal children. the GtkContainer::foreach signal vanished in
+ favour of a new class method ->forall() that optionally includes
+ internal widgets.
+
+ * gtk/gtkclist.c (gtk_clist_init): provide no _foreach implementation
+ but a _forall implementation, since all child widgets we have are
+ internal ones.
+ (column_button_create): set the parent window prior
+ to gtk_widget_set_parent().
+
+ * gtk/gtkwidget.c:
+ exchanged all calls to gtk_container_foreach() with
+ gtk_container_forall().
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: added the GTK_COMPOSITE_CHILD, exported through
+ the GtkWidget::composite_child argument. to have a widget created
+ with the flag initially, two new functions got added to wrap a widgets
+ creation:
+ gtk_widget_push_composite_flag() and gtk_widget_pop_composite_flag().
+
+Wed Aug 25 23:37:39 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtktooltips.h:
+ * gtk/gtktooltips.c: exported gtk_tooltips_create_window() as
+ gtk_tooltips_force_window(), so tooltips->tip_window can be accessed
+ prior to the first tip being set.
+ don't put an extra reference on the window, since it is a toplevel,
+ it wont get destroyed from anywhere else.
+
+ * overall macro and GtkType fixups.
+
+1998-09-02 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ * gtk/gtkcolorsel.c: Replaced "foo == TRUE" and "foo == FALSE"
+ constructs by more forgiving ones. (Does anyone else feel like
+ the color selector need rewriting?).
+
+Tue Sep 1 10:53:52 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtkprogress.c (gtk_progress_finalize): Unref
+ the adjustment.
+
+ * gtk/gtkmenu.c: Modified reference counting so
+ that the reference count from the toplevel that
+ the menu creates to the menu is invisible to the
+ application.
+
+Mon Aug 31 21:36:31 1998 Raph Levien <raph@gimp.org>
+
+ * gdk/gdkrgb.c (gdk_rgb_select_conv): Improved the 24bpp
+ conversion selection logic, so Suns and other big-endian
+ machines should get faster conv routines. This is also the
+ point where 4bpp gray and 1bpp are checked in, although I
+ wouldn't be surprised if 1bpp is a little buggy. This is
+ synchronized with the 0.0.7 release of GdkRgb.
+
+ * gtk/Makefile.am:
+ * gtk/testrgb.c: Checked in testrgb.c to CVS, and made the
+ appropriate change to the Makefile.am
+
+Mon Aug 31 15:18:19 1998 Raph Levien <raph@gimp.org>
+
+ * gdk/gdkrgb.[ch]: Added a gdk_draw_rgb_image_dithalign function,
+ which is good for images that scroll (makes the dither patterns
+ align correctly)
+
+Sat Aug 29 14:50:56 PDT 1998 Manish Singh <yosh@gimp.org>
+
+ * gdk/gdkcolor.c:
+ (gdk_colormap_new) (gdk_colormap_get_system):
+ quell some warnings with g_hash_table_new
+
+ * gtk/gtkaccelgroup.c (gtk_accel_group_add): free the GtkSignalQuery
+ when we're done with it
+
+ * gtk/itemfactory.c:
+ (gtk_item_factory_from_path):
+ (gtk_item_factory_create_item): free some strings
+
+ * gtk/gtklabel.c:
+ (gtk_label_finalize): free label->pattern when done
+ (gtk_label_parse_uline): null terminate pattern string, delete
+ some duplicated code
+
+ * gtk/testthreads.c: add #include <unistd.h> for sleep()
+
+Tue Aug 25 16:52:47 1998 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtktext.c (recompute_geometry): Make sure the
+ mark we pass to line start is the beginning of a
+ real line, not a wrapped one.
+
Mon Aug 24 18:37:15 1998 Owen Taylor <otaylor@redhat.com>
* gtk/gtktext.c: Reference count the fonts used in