+Wed Feb 11 00:18:31 1998 Tim Janik <timj@gimp.org>
+
+ * gtk/gtksignal.h:
+ * 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.
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).
+ * 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>