+Mon Feb 9 16:42:21 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
+
+ * gtk/gtksignal.c (gtk_signal_get_handlers): no longer a private
+ routine;
+ gtksignal.h: export gtk_signal_get_handlers and GtkHandlers type.
+
+Sun Feb 8 07:06:54 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkmenu.c (gtk_menu_get_attach_widget): new fundtion to return
+ the widget that the menu is attached to.
+
+Sat Feb 7 11:33:08 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gdk/gdkgc.c (gdk_gc_copy): use a mask of 0xffffffff
+ instead of 0xffff, since there are 22 flags currently
+ defined. (From: Jon Trowbridge <trow@emccta.com>)
+
+ Changed to something better. ~((~1) << GCLastBit)
+ (From: from Daniel Stephens <daniel@cheeseplant.org>)
+
+Sat Feb 7 02:29:01 1998 Tim Janik <timj@gimp.org>
+
+ * gdk/gdk.c (gdk_event_translate): don't wipe out window_private's x
+ and y coordinates if the configure notify is only about resizing,
+ query the correct origin instead.
+
+Wed Feb 4 23:05:28 1998 Scott Goehring <scott@poverty.bloomington.in.us>
+
+ * gtk/gtkmenufactory.c: menufactories now ref&sink the menus they
+ create
+
+Thu Feb 5 02:13:08 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtklist.h:
+ * gtk/gtklist.c (gtk_list_remove_items_no_unref): new function
+ to perform the same actions as gtk_list_remove_items, but
+ supply the removed widgets with an additional reference count.
+
+ * gtk/gtkmain.c (gtk_main_iteration_do): ignore events
+ with event_widget == NULL, since they are bogus events
+ from destroyed GdkWindows, exept for the case where
+ event->type==GDK_PROPERTY_NOTIFY. Always handle expired
+ timeout functions when returning from this function.
+
+ * gtk/gtkwidget.c (gtk_widget_event): ignore GDK_EXPOSE events
+ if event->window == NULL. Also, if this function couldn't handle
+ the event for any reason (including failing assumptions), make
+ the return value to look as if the event had been handled to
+ avoid further processing (and warnings).
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c: remove gtk_widget_sink, because there is
+ no point in providing such a function.
+
+ * gdk/gdk.c (gdk_init): changed options `-name' and `-class'
+ to `--name' and `--class', because the old names would
+ confuse getopt(). these arguments have been introduced in the
+ changes from gtk+970916 to gtk+970925 without a ChangeLog entry,
+ changing argument names is painful, it would be nice if people
+ would care about compatibility and consistency in the first place!
+
+Tue Feb 3 15:09:55 1998 Tim Janik <timj@gimp.org>
+
+ * docs/widget_system.txt: new file containing notes about
+ the inner workings of the widget system of GTK+, a widget
+ flag description and certain invariants about widget states.
+
+ * docs/refcounting.txt: moved file (previously REFCOUNTING)
+ introducing The Reference Counting Scheme of GDK an GTK+.
+ lots of additions/corrections.
+
+ * gtk/gtksignal.c (gtk_signal_real_emit): for the emission
+ of AFTER signals, fetch the objects signals via
+ gtk_signal_get_handlers again. some handlers might have
+ been removed or added. not doing this would mess up the
+ memchunk allocation of signal handlers (this had been
+ triggered by multiple *_while_alive connections), bad, bad, bad!
+ (gtk_handlers_run): do the referencing on signal handlers
+ unconditionally, the invokation of AFTER handlers will now take
+ care of modified lists.
+
+ * gtk/gtksignal.h: added gtk_signal_connect_while_alive.
+
+Tue Feb 3 15:34:27 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gdk/gdkcolor.c (gdk_colormap_get_system): Only query
+ the colormap for GRAYSCALE and PSEUDOCOLOR visuals,
+ and don't ask for more than 256 colors in any case.
+
+ * gdk/gdkwindow.c (gdk_window_internal_destroy): Remove
+ the input window information when we destroy the window,
+ not when we are notified of it.
+
+ * gdk/gdkinputcommon.h (gdk_input_device_new): Work around
+ bug in XFree86 3.3.1's handling of Wacom macro buttons.
+ by assumming no device will report exactly 25 buttons.
+
+ * gdk/gdkinputcommon.h (gdk_input_common_other_event): Fill
+ in string translation for generated key press events,
+ do sanity checking on received key codes.
+
+ * gdk/gdkcc.c (gdk_color_context_new): Allocate enough
+ room for a GdkColorContextPrivate, not just for a
+ GdkColorContext.
+
+Tue Feb 3 15:09:55 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/testgtk.c: don't add the same menu to different menuitems/
+ optionmenus.
+
+ * gtk/gtkmenuitem.h:
+ * gtk/gtkmenuitem.c: new function gtk_menu_item_remove_submenu ro
+ be consistent with optionmenu. use gtk_menu_attach_to_widget/
+ gtk_menu_detach for setting/removing the submenu.
+ invoke gtk_widget_destroy(submenu) in destructor to be consistent
+ with other destructors.
+
+ * gtk/gtkoptionmenu.h:
+ * gtk/gtkoptionmenu.c: attach/detach to menu widget via
+ gtk_menu_attach_to_widget/gtk_menu_detach.
+ invoke gtk_widget_destroy(menu) in destructor to be consistent
+ with other destructors.
+
+ * gtk/gtkmenu.h:
+ * gtk/gtkmenu.c: new functions gtk_menu_attach_to_widget
+ and gtk_menu_detach that correspond to the action of
+ gtk_widget_set_parent and gtk_widget_unparent.
+
+ * gtk/widget.c: few fixups.
+
+Tue Feb 3 00:12:00 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtktable.c
+ Fixed problem with division by zero in row/column-spanned
+ tables. Also removed a bunch of conditionals by making
+ the observation that x/1 == x.
+
+Mon Feb 2 04:15:08 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkwindow.c:
+ * gtk/gtkwidget.c:
+ * gtk/gtkmain.c:
+ * gtk/gtkwidget.c:
+ * gtk/gtkcontainer.c:
+ * gtk/gtkprivate.h (GTK_PRIVATE_UNSET_FLAG) (GTK_PRIVATE_UNSET_FLAGS):
+ changed name to reflect that these macros in fact can't operate on
+ multiple flags.
+
+ * gtk/gtktoolbar.c: fixed destroy handler, so it doesn't
+ segfault with the new refcounting scheme anymore.
+
+ * gtk/gtkhandlebox.c:
+ * gtk/gtkclist.c:
+ * gtk/gtkentry.c:
+ * gtk/gtkrange.c:
+ * gtk/gtktext.c:
+ * gtk/gtkviewport.c:
+ enforced
+ gdk_window_set_user_data (window, NULL);
+ gdk_window_destroy (window);
+ window = NULL;
+ throughout the code.
+
+ * gtk/gtkmain.c (gtk_propagate_event): fixed a bad, bad referencing
+ bug that could caused unreferencing of finalized objects.
+
+ * gtk/testgtk.c: destroy fileselection on "OK" (this triggered the
+ above mentioned bug).
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c:
+ * gtk/gtkobject.h:
+ * gtk/gtkobject.c:
+ implemented and object reference tracer (gtk_trace_referencing) which
+ is activated if GTK_TRACE_OBJECTS is defined (currently per default).
+ in gdb: set the static variable `gtk_trace_object' to point to the
+ object that you want to have reference traced.
+
+ * gtk/gtkfileselection.c: few cleanups.
+
+ * gtk/gtkcolorsel.c:
+ * gtk/gtkcombo.c:
+ * gtk/gtkobject.c:
+ * gtk/gtkselection.c:
+ * gtk/gtkwidget.c:
+ * gtk/gtkwindow.c:
+ cleanups with key name spaces.
+
+ * gtk/gtkcombo.c: fixed destruction bug with popwin.
+
+ * gtk/gtkcontainer.h:
+ * gtk/gtkcontainer.c: GTK_RESIZE_NEEDED is a private flag now.
+ (gtk_container_register_toplevel): new function.
+ (gtk_container_unregister_toplevel): new function.
+
+ * gtk/gtkmain.c: GTK_LEAVE_PENDING is a private flag now.
+
+ * gtk/gtkmenu.c: call gtk_container_register_toplevel in
+ gtk_menu_class_init instead of this dirty gtk_widget_set_parent(,NULL)
+ hack. new default handler gtk_menu_destroy for calling
+ gtk_container_unregister_toplevel. removed GTK_ANCHORED, GTK_UNMAPPED.
+
+ * gtk/gtkobject.h: macro cleanups, added GTK_DESTROYED flag.
+
+ * gtk/gtkobject.c: only emit DESTROY signal if !GTK_OBJECT_DESTROYED
+ (object).
+
+ * gtk/gtkprivate.h: new file that will not be automatically included.
+ it holds the private flags for GtkWidget along with it's SET/UNSET
+ and examination macros.
+
+ * gtk/gtkwidget.c: private flags: GTK_RESIZE_NEEDED, GTK_REDRAW_PENDING,
+ GTK_RESIZE_PENDING, GTK_IN_REPARENT, GTK_USER_STYLE. GTK_ANCHORED is
+ replaced by GTK_TOPLEVEL. added missing UNSET for GTK_IN_REPARENT.
+ removed the gtk_widget_set_parent(, NULL) hack for toplevels.
+ upon destroy free memory for widgets with GTK_WIDGET_HAS_SHAPE_MASK.
+
+ * gtk/gtkwidget.h: split up the widget flags into a public and a private
+ portion. added an extra field private_flags to GtkWidget without making
+ it bigger by using an alignment gap of 16 bit. macro cleanups.
+
+ * gtk/gtkwindow.c: removed GTK_ANCHORED. new function gtk_window_destroy
+ for calling gtk_container_unregister_toplevel. removed the
+ gtk_widget_set_parent(,NULL), call gtk_container_register_toplevel
+ instead. remove GTK_UNMAPPED. GTK_RESIZE_NEEDED is private now.
+
+ * gtk/gtksignal.c (gtk_signal_disconnect): removed a bug on
+ removal that cut off the handler list -> living_objects == 0
+ with testgtk. made some warnings more descriptive.
+ new function gtk_signal_connect_object_while_alive, which
+ will automatically destroy the connection once one of the objects
+ is destroyed. didn't include this before removal of the above
+ mentioned bug.
+
+Sat Jan 31 23:55:03 1998 Tim Janik <timj@gimp.org>
+
+ * ChangeLog entry for Friday (incorporation of Marius Vollmer's
+ reference counting revolution, plus various fixups and additions
+ from myself).
+
+ * gdk/gdk.h:
+ * gdk/gdkgc.c: new functions gdk_gc_ref/gdk_gc_unref.
+
+ * gdk/gdkprivate.h: cleanups on ref_count field sizes.
+
+ * gtk/gtkadjustment.c (gtk_adjustment_set_value): new function for
+ emission of GtkAdjustment::value_changed signal.
+
+ * gtk/gtkbin.c:
+ * gtk/gtkcolorsel.c:
+ * gtk/gtkcurve.c:
+ * gtk/gtkentry.c:
+ * gtk/gtkframe.c:
+ * gtk/gtkinputdialog.c:
+ * gtk/gtklabel.c:
+ * gtk/gtkpixmap.c:
+ * gtk/gtkpreview.c:
+ * gtk/gtkrange.c:
+ * gtk/gtktable.c:
+ * gtk/gtkwindow.c:
+ replaced functionality of gtk_*_destroy by gtk_*_finalize.
+
+ * gtk/gtkbox.c:
+ * gtk/gtkbutton.c:
+ * gtk/gtkfixed.c:
+ * gtk/gtkmenushell.c:
+ * gtk/gtknotebook.c:
+ * gtk/gtkpaned.c:
+ * gtk/gtkscale.c:
+ removed default destroy handler.
+
+ * in general: reference parent->window for NO_WINDOW widgets.
+ set user data of a GdkWindow to NULL before destruction.
+
+ * gtk/gtkbutton.c: use gtk_widget_unparent instead of gtk_widget_destroy
+ in *_set_arg.
+
+ * gtk/gtkcontainer.c: provide other containers with a default destroy
+ handler that will destroy all children.
+ new function gtk_container_foreach_interp.
+ new field resize_widgets.
+
+ * gtk/gtklist.c: handle destruction of children in gtk_list_destroy.
+ replaced occourances of gtk_widget_destroy with gtk_widget_unparent.
+ reference children that are in the selection list.
+
+ * gtk/gtkmain.c: reference grab widgets.
+ (gtk_get_event_widget): check for event.window != NULL. Note: this
+ function may return NULL now!.
+ (gtk_propagate_event): much simplified by using proper reference
+ counting.
+
+ * gtk/gtkmenu.c: introduce GTK_TOPLEVEL, and gtk_widget_set_parent(,
+ NULL) hack.
+
+ * gtk/gtkmenuitem.c: gtk_widget_(un)ref the submenu.
+
+ * gtk/gtkmenushell.c: check for return value of gtk_get_event_widget.
+
+ * gtk/gtknotebook.c: proper gtk_widget_unparent()ing.
+
+ * gtk/gtkobject.c: new functions gtk_object_finalize,
+ gtk_object_notify_weaks, gtk_object_debug, gtk_object_sink,
+ gtk_object_weakref, gtk_object_weakunref. implementation of the new
+ reference counting scheme for gtkobjects (consult gtk+/REFCOUNTING).
+
+ * gtk/gtkoptionmenu.c: proper reference counting for option_menu->menu.
+
+ * gtk/gtkscrolledwindow.c: new finalize handler for proper referencing
+ of the subwidgets.
+
+ * gtk/gtksignal.c: internal representation of signal_type is now 16 bit
+ instead of 13 bits. this is needed because of user signals.
+ new functions gtk_signal_handler_ref and gtk_signal_handler_unref
+ (replacement for gtk_signal_handler_destroy).
+ gtk_signal_emit, gtk_signal_emit_by_name, gtk_signal_real_emit used
+ to return the existence of a GtkObject. this will always be TRUE now,
+ therefore the return value is now void.
+
+ * gtk/gtktooltips.h:
+ * gtk/gtktooltips.c: GtkTooltips is now a descendant of GtkData and
+ therefore a real GtkObject.
+
+ * gtk/gtktree.c: reference changes similar to thos in gtklist.c.
+
+ * gtk/gtktreeitem.c: reference th e pixmaps properly.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new function gtk_arg_copy() to conform to
+ the requirements of gtk_object_get().
+
+ * gtk/gtkviewport.c: finalize handler for proper referencing of the
+ adjustments.
+
+ * gtk/gtkwidget.c: substituted VISIBILITY_NOTIFY_EVENT by NO_EXPOSE_EVENT.
+ added finalize handler. added gtk_widget_ref/gtk_widget_unref.
+ new functions gtk_widget_idle_draw and gtk_widget_idle_sizer, that
+ will handle all widgets that are currently in either queue.
+ referencing all over the place. changes because gtk_signal_emit
+ returns void now. moved queue removal into the destroy handler.
+ gtk_widget_real_unrealize propagates now down the tree. new flag
+ GTK_TOPLEVEL. new function gtk_widget_destroyed for connection to the
+ destroy signal of a widget. this function nullifies the widgets
+ structure pointer, look at gtkmain.c for an example on this.
+
+ * gtk/gtkwindow.c: new functions gtk_window_activate_focus,
+ gtk_window_activate_default. for activation of the appropriate
+ children. changes to the resizing code because there is a new
+ field resize_widgets in GtkContainer now.
+
+ * gtk/testgtk.c: some changes because of all the above ;)
+
+Sat Jan 31 21:26:27 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkwidget.c: Added a new GTK_IN_REPARENT flag and revised
+ gtk_widget_reparent so that the child would not be unrealized
+ unnecessarily. Changed gtk_widget_unrealize () to recursively
+ unrealize the children (since the child windows will be
+ destroyed too.)
+
+Sat Jan 31 00:05:34 PST 1998 Manish Singh <yosh@gimp.org>
+
+ * gtk/gtkcombo.c: changed to use g_strcasecmp
+ * gtk/gtkobject.c: #include <stdlib.h> for atexit
+
+Sat Jan 31 00:13:33 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkstyle.c: Backed out change to close polygons
+ since it caused problems for the Notebook.
+
+Fri Jan 30 22:28:09 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkclist.{c,h}:
+ - Conformity to new reference counting schemes
+ - Font and color information is no-longer taken from
+ the (possibly unitialized) style before the widget
+ is realized, but is obtained when needed. (Fixes
+ problems with non-default styles)
+ - white_gc => base_gc where appropriate
+ - Handle graphics expose events correctly (or as
+ correctly as anywhere else) so that scrolling when
+ overlapped works.
+
+Fri Jan 30 21:32:11 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkwidget.c (gtk_widget_init): Don't replace the object
+ flags, augment them. (Otherwise we'll clear the FLOATING flag)
+
+Fri Jan 30 17:41:06 1998 George Lebl <jirka@5z.com>
+
+ * gtk/gtktable.c: fixed round-off error in calculation
+ of tabels with a lot of cells
+
+Fri Jan 30 08:51:16 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
+
+ * gdk/gdkcc.c (gdk_color_context_get_pixel): red/green/blue
+ parameters are now expected to be in [0, 65535], to be consistent
+ with the rest of Gdk.
+ (gdk_color_context_get_pixels): Made it use 16-bit color values as
+ well. Fixed mdist=1000000 buglet (it should start with at least
+ 0x1000000).
+ (gdk_color_context_get_pixels_incremental): Same as
+ gdk_color_context_get_pixels().
+
+Thu Jan 29 22:57:39 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkstyle.c (gtk_default_draw_polygon): Close
+ the polygon if it isn't already. (To match gtk_draw_polygon)
+ Simplified logic. (Appearance could probably be
+ improved for objects with gradual curves by adding in
+ some intermediate edge coloration)
+
+Thu Jan 29 21:36:14 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtksignal.c (gtk_signal_query): new function to gather
+ information about a certain signal.
+
+ * gtk/gtksignal.c (gtk_signal_newv): new function similar to
+ gtk_signal_new().
+
+ * gtk/gtksignal.c (gtk_signal_real_emit): check for function_offset
+ == 0.
+
+ * gtk/gtksignal.c (gtk_signal_connect_by_type): perform a signal
+ id lookup on the parent as well.
+
+ * gtk/gtkobject.c (gtk_object_class_add_user_signal): new
+ function for implementation of user defined signals.
+ * gtk/gtkobject.c (gtk_object_class_add_signals): free old
+ signal id array.
+
+ * gtk/gtkobject.h: this holds the typedefs for GtkSignalFunc and
+ GtkSignalMarshaller now, because they are used for
+ gtk_object_class_add_user_signal.
+
+ * gtk/gtktypeutils.c (gtk_type_class_init): reset object_class->signals
+ and object_class->nsignals for new object classes.
+
+Tue Jan 27 15:52:48 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
+
+ * gtk/gtkhandlebox.c (gtk_handle_box_realize): The auto_shrink
+ policy of the floating window is now set to TRUE. This fixes the
+ problem of the floating window being too big when the handlebox
+ child is small.
+ (gtk_handle_box_motion): Now we use GDK_POINTER_MOTION_HINT_MASK
+ to improve movement.
+
+Tue Jan 27 14:15:50 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * docs/gtkfaq.sgml: more additions/changes Tony Gale.
+
+Mon Jan 26 17:12:12 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * docs/gtkfaq.sgml: additions/changes from new FAQ maintainers
+ Nathan Froyd and Tony Gale.
+
+Mon Jan 26 16:54:02 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * docs/gtk.texi: additions/changes from Gregory A. McLean
+
+Mon Jan 26 02:15:29 1998 Tim Janik <timj@gimp.org>
+
+ * gdk/gdkdraw.c:
+ * gdk/gdkgc.c:
+ * gdk/gdkimage.c:
+ * gdk/gdkinput.c:
+ * gdk/gdkpixmap.c:
+ * gdk/gdkproperty.c:
+ * gdk/gdkselection.c:
+ * gdk/gdkwindow.c: added a bunch of checks for window != NULL and
+ private->destroyed.
+
+Sun Jan 25 19:15:32 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkwidget.h (enum): added new widget flag GTK_LEAVE_PENDING.
+ * gtk/gtkmain.c (gtk_main_iteration_do): if a widget has
+ GTK_LEAVE_PENDING set, send it its LEAVE_NOTIFY event, regardless
+ of a grab or sensitivity.
+ changed the compression code for enter/leave notify events to
+ free *both* compressed event, and removed an unneccessary call
+ to g_list_remove.
+
+ * ChangeLog: finally catched up with the recent changes on my part.
+
+ * gtk/gtkobject.h: new element n_args in GtkObjectClass.
+ * gtk/gtkobject.c (gtk_object_query_args): this function now returns
+ the arguments in the correct order.
+
+ * gtk/gtkbox.c:
+ * gtk/gtkbutton.c:
+ * gtk/gtkcontainer.c:
+ * gtk/gtkframe.c:
+ * gtk/gtklabel.c:
+ * gtk/gtkobject.c:
+ * gtk/gtkwidget.c:
+ * gtk/gtkwindow.c: various fixes and additions to the gtk_*_set_arg
+ and gtk_*_get_arg() functions.
+
+ * gdk/gdk.h:
+ * gdk/gdk.c (gdk_pointer_is_grabbed): new function.
+
+ * gtk/gtkmain.h:
+ * gtk/gtkmain.c: implementations of gtk_invoke_key_snoopers(),
+ gtk_key_snooper_install() and gtk_key_snooper_remove(). this
+ mechanism allowes applications to track global hot keys that need
+ to bypass accelerator tables and else key processing stuff.
+
+Thu Jan 22 18:58:44 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
+
+ * gdk/gdkcc.c: Switched the file to GNU indentation, for consistency.
+
+ * gdk/gdktypes.h (struct _GdkColorContext): Picky, picky... fix
+ two lines with wrong indentation :-)
+
+Thu Jan 22 02:32:06 1998 Scott Goehring <scott@poverty.bloomington.in.us>
+
+ * gtk/Makefile.am: Fixed the called to runelisp to use $(SHELL).
+ (Cannot rely on the script having execute permissions.)
+
+Wed Jan 21 17:29:54 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * Released 0.99.3
+
Wed Jan 21 01:32:21 1998 Tim Janik <timj@psynet.net>
* gtk/gtkwidget.h:
gtk/testgtk.c: changed to use new version
gtk/Makefile.am gtk/gtk.h
+Mon Jan 19 20:10:19 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * gdk/gdk.h Fixed typo where strdup was used instead of g_strdup
+ (found by Frank Neumann)
+
Mon Jan 19 16:21:00 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
* gtk/gtktoolbar.c (gtk_toolbar_class_init): Set