+Wed Feb 18 01:09:56 PST 1998 Jay Painter <jpaint@serv.net>
+ * gdk/gdk.c: fixed ambigous else compiler warning
+ * gtk/gtkgamma.c: fixed ambigous else compiler warning
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: new signals which break everything! (yeah!)
+ * gtk/gtkfilesel.c: fixed to use new clist signals
+
+Wed Feb 18 04:38:24 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkwidget.h:
+ * gtk/gtkwidget.c:
+ new signal GtkWidget::set_parent. this signal will be emitted once a
+ widget gets a new/no parent assigned (i.e. from gtk_widget_unparent
+ and gtk_widget_set_parent).
+
+Wed Feb 18 02:58:50 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtktooltips.h:
+ new functions gtk_tooltips_data_get and
+ gtk_tooltips_set_tip, gtk_tooltips_set_tips is discouraged now.
+ (_GtkTooltips): removed some fields that were never used.
+ changed boolean fields to one bit size, to pack together with
+ the delay field.
+ (_GtkTooltipsData): added tip_private, renamed tips_text to
+ tip_text.
+ * gtk/gtktooltips.c:
+ (gtk_tooltips_data_get): new function to retrive the
+ _GtkTooltipsData structure of a widget.
+ (gtk_tooltips_set_tip): new function for more extensible tooltips
+ settings than gtk_tooltips_set_tips which is discuraged now.
+ removed a bug that caused a stale object_data key to a
+ _GtkTooltipsData structure.
+ removed a bug that caused tips falsly to come up for a grab widget
+ on widgets where events were grabbed from.
+
+1998-02-17 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ * gdk/gdkcc.c: Added some missing newlines on debug messages.
+
+Tue Feb 17 05:41:31 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkentry.c (gtk_entry_init): invoke gtk_entry_grow_text already
+ in this place, so the application will never see entry->text==NULL.
+ (see also ChangeLog entry from Tue Feb 11 1997 on this).
+
+ * gtk/gtkcheckbutton.c:
+ * gtk/gtkradiobutton.c:
+ * gtk/gtktogglebutton.c:
+ applied patch to fix draw_indicator behaviour from Lars Hamann
+ and Stefan Jeske.
+
+ * gtk/gtkmain.h:
+ * gtk/gtkmain.c (gtk_grab_get_current): new function
+ that returns the current grab widget or NULL.
+
+ * gdk/gdkwindow.c (gdk_window_shape_combine_mask): remove
+ shape mask if mask==NULL (provided by Stefan Wille).
+
+Tue Feb 17 00:06:26 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkpaned.c, gtk/gtk[hv]paned.c: (gtk-fortier-980215-0)
+ From Patrice Fortier <Patrice.Fortier@aquarel.fr>
+
+ Add a widget->window for paned windows, so they
+ can be reparented properly.
+
+Mon Feb 16 23:47:09 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkviewport.c: (gtk-fortier-980130-0)
+ From Patrice Fortier <Patrice.Fortier@aquarel.fr>
+
+ Eliminate some extra expose events for viewports.
+ (To be conservative, I set the user's event mask for
+ both widget->window, and viewport->bin_window -owt)
+
+Mon Feb 16 23:12:14 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkmain.c: Make timeout and idle insertion code
+ use g_list_insert_sorted().
+
+Mon Feb 16 17:35:17 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtktreeitem.c: Use gtk_signal_default_marshaller,
+ for expand/collapse signals.
+
+Fri Feb 13 19:08:51 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtkclist.c (check_exposures): check for clist !REALIZED.
+ (draw_rows): bail out if the widget isn't drawable.
+ (hadjustment_value_changed):
+ (vadjustment_value_changed): bail out if clist isn't drawable.
+
+ * gdk/gdk.c (graphics_expose_predicate): check for private != NULL.
+ (gdk_event_get_graphics_expose): check for window != NULL.
+
+Fri Feb 13 00:33:26 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/testgtk.c (shape_create_icon): Realize window before
+ creating xpm so it gets the right colormap/visual,
+ instead of the default one.
+
+Thu Feb 12 23:59:49 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtksignal.[ch] gtk/gtkmain.[ch] gtk/gtkcontainer.[ch]
+ gtk/gtkselection.[ch] gdk/gdk.[ch] gtktypeutils.h
+
+ Replaced all _interp functions with _full functions.
+ (_interp functions left in for compatibility until 0.99.5).
+ Difference: _full functions take _both_ a C-language callback and a
+ marshaller, and simply ignore the C-language callback
+ if the marshaller is present. This allows the destroy notification
+ to be used without marshalling.
+
+ gtk_selection_add_handler[_full]() regularized to agree
+ with other callbacks.
+
+ Also, added gtk_input_add_full() to the header file.
+ (gtk_input_add_interp() was never there)
+
+ * gtk/gtkmain.[ch] gtk/gtkwidget.c: Idle functions are now prioritized.
+ Added new function gtk_idle_add_priority to create
+ an idle with a specified priority (default is zero)
+ constants #defined - GTK_PRIORITY_[HIGH/INTERNAL/DEFAULT/LOW]
+ (redraws, resizes run at GTK_PRIORITY_INTERNAL)
+
+ * gtk/gtkentry.c gtk/testselection.c: changes to keep up with change
+ to gtkselection.c.
+
+ * gtk/gtkentry.c gtk/gtkinputdialog.c gtk/gtklist.c
+ gtk/gtklistitem.c gtktree.c gtk/gtktreeitem.c testgtkrc:
+
+ Change style->white to style->base[] where appropriate.
+ Change the default style to make this apparent. (Yes, its
+ ugly... it can be removed later)
+
+Tue Feb 10 15:01:44 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkobject.c gtk/gtkobject.h: Add a DestroyNotify
+ field, and gtk_object_set_data_full() to match.
+
+ * gtk/gtkobject.c (gtk_object_finalize): ObjectData structures
+ were being added to a free list, then forgotten about. Just
+ rely on GMemChunk instead.
+
+2018-02-11 Federico Mena Quintero <federico@nuclecu.unam.mx>
+
+ * gtk/gtkclist.c:
+ * gtk/gtkentry.c:
+ * gtk/gtkfixed.c:
+ * gtk/gtkhandlebox.c:
+ * gtk/gtknotebook.c:
+ * gtk/gtkpaned.c:
+ * gtk/gtkpreview.c:
+ * gtk/gtkrange.c:
+ * gtk/gtkruler.c:
+ * gtk/gtktext.c:
+ * gtk/gtkviewport.c:
+ Fixed unrealize handler to comply with the
+ documentation (which mentions the right thing to do).
+
+Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
+
+ * docs/refcounting.txt: backed out the section "Gnits to care about".
+ * docs/developers.txt: new file, kinda developers FAQ.
+
+ * gtk/gtksignal.c: new function gtk_signal_handler_pending() returning
+ the id of the next handler pending for that signal or 0.
+ put struct GtkHandler back into gtksignal.c along with
+ gtk_signal_get_handlers.
+
+Tue Feb 10 07:12:07 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtksignal.h:
+ * gtk/gtksignal.c:
+ ok, there have been several severe bugs in the signal handler
+ referencing and ->next connection stuff. these bugs caused
+ invokations of handlers that are disconnected and - worse -
+ destroyed already. invokation of *destroyd* handlers mean:
+ anything can be executed , because the handler structure can just
+ as well be realocated.
+ at the cost of an extra ->prev field per handler we should have a
+ reasonable stable system now, because of the various places that
+ can cause a handler to be disconnected (*any* handler invokation can
+ cause *any* or *all* handlers to be disconnected, there is no way
+ around a doubly linked list, actually handler disconnection has never
+ worked correctly because of this.
+ handlers are connected together via a *doubly* linked list now, and it
+ is *not* valid to remove a handler out of this list untill all its
+ references have been droped, i.e. handler->ref_count==0.
+ to prevent emissions of disconnected but still referenced handlers,
+ disconnected handlers are simply marked as blocked and get an id of 0
+ which is an invalid signal handler id.
+ the handler->id has been changed to have 28 significant bits (using
+ alignment gaps), since 65536 (old range: guint16) signal connections
+ (as a total) can easily be reached by complex applications.
+ this whole handler thingy is at least as tedious as writing doubly
+ linked list implementations ;)
+
+Mon Feb 9 23:08:16 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkwidget.c (gtk_widget_unparent): Check for
+ the RESIZE_NEEDED flag and remove the widget from the list.
+ Remove the check from gtk_widget_destroy (no longer needed).
+
+ * Unrealize widget _before_ calling "destroy" signal, and
+ unset VISIBLE flag.
+
+ * Unrealize child widgets _after_ unrealizing parent to improve
+ visual appearance.
+
+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 function 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 call 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/gtkwidget.c: changed the state_changed signal to take an
+ extra argument `old_state'.
+ removed `gtk_widget_restore_state'.
+ changed `gtk_widget_set_state' and `gtk_widget_set_sensitive' to use
+ only one function `gtk_widget_propagate_state' to iterate down the
+ tree. this causes GtkWidget::state_changed to be invoked on state
+ changes and on sensitivity changes. some comment cleanups.
+
+Tue Jan 20 16:38:52 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtkcombobox.{c,h}: removed
+ gtk/gtkcombo.{c,h}: added [Paolo Molaro's version]
+ 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
+ container_class->focus to NULL. Widgets in the toolbar should not
+ get the focus via the normal key bindings (no toolkit does this,
+ and it makes sense).
+
+ * gtk/testgtk.c (create_toolbar): Removed the GTK_PIXMAP casts to
+ match Eckehard's new prototypes.
+
+ * gtk/gtktoolbar.h: Switched the order of the tooltip_text and
+ widget parameters to the gtk_toolbar_*_widget() functions, to be
+ friendlier to the C++ bindings. This is per request of Guillaume
+ Laurent.
+
+Mon Jan 19 09:16:38 1998 Tim Janik <timj@psynet.net>
+
+ * gtk/gtkmain.c (gtk_grab_add) (gtk_grab_remove): this is a stack
+ of grabbing widgets now, having unique entries. the GTK_HAS_GRAB
+ flag of a widget is set while it is on the stack (wasn't
+ implemented before).
+
+Mon Jan 19 00:46:18 1998 MET Eckehard Berns <eb@berns.prima.de>
+
+ * gtk/gtktoolbar.[ch]: changed
+ gtk_toolbar_{append,prepend,inser]_item to accept any GtkWidget
+ as icon to allow more flexibility
+
+Sun Jan 18 16:54:55 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+ * gtk/gtkstatusbar.[ch] added new widget, the statusbar
+
+Sun Jan 18 09:57:00 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkbutton.c gtk/gtkclist.c gtk/gtkdrawingarea.c
+ gtk/gtkentry.c gtk/gtkeventbox.c gtk/gtkfixed.c
+ gtk/gtkhandlebox.c gtk/gtkhscale.c gtk/gtkhscrollbar.c
+ gtk/gtkitem.c gtk/gtklist.c gtk/gtkmenushell.c gtk/gtkmisc.c
+ gtk/gtknotebook.c gtk/gtkpaned.c gtk/gtkpreview.c
+ gtk/gtkprogressbar.c gtk/gtkruler.c gtk/gtktext.c gtk/gtktree.c
+ gtk/gtkviewport.c gtk/gtkvscale.c gtk/gtkvscrollbar.c
+ gtk/gtkwidget.{c,h}
+
+ Added gtk_widget_set_parent_window() and
+ gtk_widget_get_parent_window(). All widgets should use:
+
+ gtk_widget_get_parent_window() instead of widget->parent->window.
+
+ Any widget that wants to have children not in the parent window,
+ should use gtk_widget_set_parent() in their realize() and
+ add() routines.
+
+ CList and Viewport widgets changed to do this. (Viewport
+ widget using code from gtk-fortier-980117-0.patch.)
+
+Sat Jan 17 23:56:02 1998 Owen Taylor <owt1@cornell.edu>
+
+ * gtk/gtkobject.c:
+ renamed g_string_equal => g_str_equal
+ renamed g_string_hash => g_str_hash
+
+Sun Jan 18 03:57:52 1998 Tim Janik <timj@psynet.net>
+
+ * gtk/gtkframe.c: gtk_*_get_arg() and gtk_*_set_arg() implementations.
+ * gtk/gtkobject.c: new arg `GtkObject::object_signal' similar to
+ `GtkObject::signal'. check for class type in gtk_object_{setv|getv}.
+
+ * gtk/gtkobject.c:
+ * gtk/gtksignal.c:
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: added GTK_TYPE_DOUBLE.
+
+ * gtk/gtkwidget.c: new args `has_focus' and `has_default'.
+ * gtk/gtkwindow.c: new arg `window_position'.
+
+ * gtk/gtkbox.h:
+ * gtk/gtkbox.c: new functions gtk_box_reorder_child,
+ gtk_box_query_child_packing and gtk_box_set_child_packing to
+ allow modification of the child linkage after the widget tree
+ is setup.
+
+ * gtk/gtkbox.c:
+ * gtk/gtklabel.c:
+ * gtk/gtkwindow.c:
+ * gtk/gtkwidget.c:
+ * gtk/gtkobject.c: gtk_*_get_arg() and gtk_*_set_arg() fixes
+ and implementations.
+
+Sat Jan 17 18:06:35 1998 Owen Taylor <owt1@cornell.edu>
+ * gdk/gdk.c (gdk_events_pending): Take putback events into
+ account
+
+ * gdk/gdk.c (gdk_event_free): Handle dropdataavaible memory
+ allocation correctly. (Incompatible change: client must
+ _not_ fre event->data and event->data_type.)
+
+ * gdk/gdk.c (gdk_event_translate): Changed DND dragging
+ so that we don't ungrab pointer when we reenter window
+ to prevent extra Enter/Leave effects which had bad
+ effects.
+ Changed drag zone handling to not send uncessary
+ DragEnter events.
+ Fixed EnterNotify/LeaveNotify handling. (Only pay
+ attention to events on window, don't specify these
+ events to XGrabPointer - that isn't valid, and handle
+ reverse the sense of the handling of LeaveNotify.)
+
+ * gdk/gdkwindow.c (gdk_window_remove_filter): Free removed
+ filter.
+
+ * gtk/gtk.defs (GdkFont): gdk_font_free => gdk_font_unref
+
+ * gtk/gtkmain.{c,h} (gtk_events_pending): new function - apps
+ should use this instead of gdk_events_pending.
+
+ * gtk/gtkvbbox.h: Fixed a duplication in the headers.
+
+ * gtk/testgtk.c (dnd_drop): Don't free the drop data,
+ it belongs to the event.
+
+Sat Jan 17 13:26:15 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+
+ * gtk/gtkentry.[ch]: Applied patch from <lupus@lettere.unipd.it>
+ which adds gtk_entry_set_max_length function. This was
+ part of gtk-lupus-970112-0.
+
+ * gtk/testgtk.c: Applied gtk-wille-980113-0 which fixes
+ a problem with a shaped widget keeping grab forever
+ when double clicked.
+
+ * docs/gtk.texi: patch from Gregory McLean <gregm@randomc.com>
+ to add some on aspect_frame, button_box, and color_selection
+ widgets
+
+Sat Jan 17 06:24:05 1998 Tim Janik <timj@psynet.net>
+
+ * gtk/gtktypeutils.h (gtk_type_get_arg): new function.
+ * gtk/gtkobject.h (gtk_object_query_args): new function.
+ * gtk/gtkobject.h (gtk_object_getv): new function.
+ * gtk/gtkwidget.h (gtk_widget_get): new function.
+
+Fri Jan 16 00:36:31 1998 Federico Mena <federico@bananoid.nuclecu.unam.mx>
+
+ * gtk/gtkhandlebox.c: Now we use a GtkWindow of type
+ GTK_WINDOW_DIALOG as a destination for reparenting the child of
+ the handle box. This solves the problem of having X calls in
+ Gtk. It also makes the handle box work with KWM, OLVWM, 4Dwm (so
+ I expect mwm to work as well). I hadn't noticed that previously
+ it only worked with fvwm and twm.
+
+ * gtk/gtkhandlebox.h (struct _GtkHandleBox): Removed the
+ real_parent field, as it is never used.
+ (struct _GtkHandleBox): Added a float_window field. This is a
+ GtkWindow to where the child is now reparented.
+
+ * gtk/gtkhandlebox.c: Lots of changes all over the place. Now the
+ widget has two windows. The steady_window stays put in the parent
+ container, and the widget->window is the one that gets
+ reparented. Now that window is transient, in compliance with the
+ ICCCM, instead of an OverrideRedirect window.
+
+ We have two windows so that we can properly receive Expose events
+ for the thin 3D line that marks the place where the handlebox is
+ docked.
+
+ * gtk/gtkhandlebox.h (struct _GtkHandleBox): Added fields for
+ dragging (mouse position information). Added fleur_cursor so that
+ we look pretty. Added steady_window field; it is the window that
+ actually stays on the parent (widget->window is the one that gets
+ reparented).
+
+Thu Jan 15 19:03:19 1998 Miguel de Icaza <miguel@nuclecu.unam.mx>
+
+ * gtk/gtkclist.c (gtk_clist_set_column_width): Call
+ gtk_clist_size_allocate_columns every time the column
+ configuration changes.
+
Fri Jan 16 01:55:17 1998 Tim Janik <timj@psynet.net>
* improved the gtk_widget_set handling. removed GtkArgFunc and added
* gtk/gtkobject.c: bug fixes and changes in the assertion system for
arg handling. changed g_print() warning calls to real g_warning()s.
+
+ * changed all *_get_type() functions to initialize GtkTypeInfo
+ correctly with GtkArgSetFunc and GtkArgGetFunc fields.
Thu Jan 15 00:44:27 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/gtkentry.[ch]: Change window cursor to "I"
* glib/testglib.c: Added g_[s]list_insert_sorted function
and appropriate tests in testglib
+Tue Jan 6 17:09:46 1998 Owen Taylor <owt1@cornell.edu>
+ * gtk/gtknotebook.h gtk/gtknotebook.c
+ Added "switch_page" signal. (gtk-hamann_jeske-971212-0.patch)
+
Tue Jan 6 17:07:29 1998 Owen Taylor <owt1@cornell.edu>
* gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c :
Fixed problem with deleting while text is selected.
Sat Jan 3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
* gtk/testgtk.c: better CList test
+Sat Jan 3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
+ * GTK+ 0.99.2 Released
+
Sat Jan 3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
* gtk/gtkscrolledwindow.c: initialize scrollbar_spacing