]> Pileus Git - ~andy/gtk/blob - ChangeLog.pre-2-0
changlog updates
[~andy/gtk] / ChangeLog.pre-2-0
1 Tue Jan 13 07:30:02 PST 1998 Jay Painter <jpaint@serv.net>
2         * gtk/gtkclist.c: minor updates
3         * gtk/gtktext.c: you can type in it!  It should also seg-fault *MUCH* less now,
4         because editing was never really turned off.  
5         * gtk/testgtk.c: changed the gtktext test a little
6         * gtk/testgtkrc: removed pixmap background for now, since I intend to break
7         that for a while
8
9 1998-01-13  Federico Mena Quintero  <federico@nuclecu.unam.mx>
10
11         * gtk/gtktoolbar.c: (gtk_real_toolbar_style_changed): Fixed
12         child->icon and child->label == NULL bugs.
13
14         * gtk/gtktoolbar.h: Added some new functions:
15                 gtk_toolbar_append_widget()
16                 gtk_toolbar_prepend_widget()
17                 gtk_toolbar_insert_widget()
18         These let the user insert any kind of widget in the toolbar.  Also
19         changed the gtk_toolbar_*_item() functions to return a
20         GtkWidget * so that the user can do things with the toolbar buttons.
21
22         * gtk/gtktoolbar.c: Now the toolbar supports its own buttons and
23         arbitrary widgets as well.  Geometry management has been changed
24         accordingly.  Added gtk_toolbar_remove() function, so container
25         functionality should be complete now.
26
27         * gtk/testgtk.c (create_toolbar): Added an entry widget to test
28         the new toolbar.
29
30         * Most of these changes are adapted from the
31         gtk-lupus-970112-0-patch (should be 970112... :-)
32
33 Sat Jan  9 20:52:00 PST 1998 Ian Main <imain@gimp.org>
34         * gtk/gtkfilesel.c:  Changed a few tests in the path correcting
35                 function.  Hopefully this helps the filesel stability.
36
37 Fri Jan  8 00:55:00 PST 1998 Jay Painter <jpaint@serv.net>
38         * gtk/gtkclist.c:
39         * gtk/gtkclist.h: modifications to GtkCList so it's look and 
40         feel is the same as scrolled windows.
41
42 Thu Jan  8 17:56:09 PST 1998 Manish Singh <yosh@gimp.org>
43
44         * glib/gscanner.c
45         * gtk/gtclist.c
46         * config.h.in
47         * configure.in: added test for inline and put the inline keywords
48         back in
49
50         * gtk/gtklabel.c: made the prototypes match the definitions
51
52         * gtk/fnmatch.c: minor change to make sure the right config.h
53         gets included
54         
55 1998-01-07  Elliot Lee  <sopwith@localhost.cs.cuc.edu>
56
57         * gtk/gtkcombobox.c gtk/gtkcombobox.h: New widget, GtkComboBox
58         * gdk/gdkwindow.c: Make gdk_window_init set the width &
59                 height of gdk_root_parent
60
61 Wed Jan  7 18:06:17 PST 1998 Manish Singh <yosh@gimp.org>
62
63         * gtk/gtkentry.c:
64         * gtk/gtkentry.h: applied patch to use a backing pixmap for
65         drawing, which removes the bad flickering. (gtk-wille-980106-0)
66
67 Wed Jan  7 02:14:30 PST 1998 Manish Singh <yosh@gimp.org>
68
69         * glib/glib.h
70         * glib/glist.c
71         * glib/gslist.c
72         * glib/testglib.c: Added g_[s]list_insert_sorted function
73         and appropriate tests in testglib
74
75 Tue Jan  6 17:07:29 1998  Owen Taylor  <owt1@cornell.edu>
76         * gtk/gtkentry.c gtk/gtkentry.h gtk/testgtk.c : 
77            Fixed problem with deleting while text is selected.
78            Changed behavior so that motion keys remove selection.
79            Added new gtk_entry_select_region () call.
80
81 Sat Jan  3 20:23:25 1998  Owen Taylor  <owt1@cornell.edu>
82         * glib/glib.h: Changed guint32 -> guint for bitfields. 
83           (Bitfields must be int or unsigned int?)
84
85 Sat Jan  3 15:39:45 PST 1998 Jay Painter <jpaint@serv.net>
86         * gtk/testgtk.c: better CList test
87
88 Sat Jan  3 11:09:51 CST 1998 Shawn T. Amundson <amundson@gimp.org>
89
90         * gtk/gtkscrolledwindow.c: initialize scrollbar_spacing
91           (gtk-fortier-980103-0)
92
93 Sat Jan  3 10:15:08 1998  Scott Goehring  <scott@poverty.bloomington.in.us>
94
95         * configure.in: fixed a typo (no_xext_lib, not no_ext_lib).
96
97 Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
98
99         * gtk/gtkentry.c:
100         * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
101         fixed-length entry fields (gtk_entry_new_with_max_length)
102         
103 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
104         * reverted glibconfig.h and glib.h files back to the
105         way they were before my ugly hack
106         * gtk/gtkclist.c:
107         * glib/gscanner.c: removed inlines from clist and gscanner
108
109 Fri Jan  2 23:55:24 CST 1998 Shawn T. Amundson <amundson@gimp.org>
110
111         * Several portability fixes from Michael Callahan 
112           <callahan@xmission.com> including adding in missing
113           #includes and adding void in function prototypes.
114
115 Fri Jan  2 19:28:52 1988 Jay Painter <jpaint@serv.net>
116         * gtk/gtkclist.h:
117         * gtk/gtkclist.c:
118         * gtk/gtk.h:
119         * gtk/testgtk.c:
120         * gtk/testgtkrc: added GtkCList, column list widget, and a small test
121         to testgtk
122
123 Fri Jan  2 15:42:51 1998  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
124
125         * gtk/gtkmain.c (gtk_main_iteration): Make the big switch handle
126         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.
127
128 Fri Jan  2 12:07:33 CST 1998 Shawn T. Amundson <amundson@gimp.org>
129
130         * gtk/gtkviewport.c: corrects a small resize bug in the 
131           viewport widget.  The viewport widget provides a _set_shadow 
132           function to draw its shadows. But if GTK_SHADOW_NONE is sent 
133           to this function, the viewport isn't resized correctly (it's 
134           still considered as a shadowed widget).  (gtk-fortier-971213-0)
135
136         * gtk/gtknotebook.c: this patch fixes the redraw problems of 
137           notebook tabs, without using gdk_gc_set_clip_rectangle.
138           (gtk-hamann_jeske-971218-0)
139  
140         * add gtk_widget_(show/hide)_all (Stefan Wille)
141           (gtk-wille-301297-0)  Patch for testgtk not included
142           because it did not patch clean.  
143
144 Thu Jan  1 21:21:56 PST 1998 Manish Singh <yosh@gimp.org>
145
146         * configure.in: fixed up the xinput test
147         * Miscellaneous portability fixes.
148
149 Mon Dec 29 22:05:45 1997  Miguel de Icaza  <miguel@nuclecu.unam.mx>
150
151         * gdk/gdkgc.c (gdk_gc_copy): New function, used to copy the values
152         from one gc to another gc.
153
154 Sat Dec 27 20:39:99 1997  Elliot Lee <sopwith@redhat.com>
155         * gtk/gtkhandlebox.c: It mostly works now, please test it and make
156         fixes as needed.
157
158 Fri Dec 26 11:20:03 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
159
160         * gtk/Makefile.am (gtkinclude_HEADERS): added gtkhandlebox.c
161
162         * gtk/gtkhandlebox.c (gtk_handle_box_reparent): eliminated a
163         compiler warning caused by not casting an argument in a debugging
164         message. :)
165
166 Fri Dec 26 02:59:39 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
167
168         * gdk/gdktypes.h gdk/gdk.c gdk/gdkwindow.c: Added new
169         GDK_NO_EXPOSE and GDK_VISIBILITY_NOTIFY events.  They are needed
170         for Alan Cox's TV widget and for GtkXmHTML.  Only missing with
171         respect to their Xlib counterparts are the major_code and
172         minor_code fields from the GdkEventNoExpose structure.  Does
173         anyone need them?
174
175 Tue Dec 23 03:03:17 1997  Tim Janik  <timj@psynet.net>
176
177         * gtk/gtkscrolledwindow.c (SCROLLBAR_SPACING): this macro computes
178         the spacing from klass->scrollbar_spacing now. adapted all functions
179         that used this macro (based on a patch from Patrice Fortier).
180         * gtk/gtkscrolledwindow.h (struct _GtkScrolledWindowClass): added
181         scrollbar_spacing to substitute a define (patch from Patrice Fortier).
182
183         * gtk/gtkrc.h (gtk_rc_parse_string): new function.
184         * gtk/gtkrc.c: many functions adapted to use GScanner for scanning.
185         (gtk_rc_parse): use gtk_rc_parse_any for parsing.
186         (gtk_rc_parse_string): new function to support parsing from
187         strings, just calls gtk_rc_parse_any.
188         (gtk_rc_parse_any): new function using GScanner as lexer.
189
190 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
191
192         * GDK support for 1 bpp depth screens.
193
194 Thu Dec 18 23:46:11 CST 1997 Shawn T. Amundson <amundson@gimp.org>
195
196         * Changes from Bolliet Jerome <bolliet@in2p3.fr> to gtktree.
197           Corrects a bug in gtk_tree_remove_items and gtk_tree_item_destroy.
198           Adds the possibility to connect all items by lines. This is the 
199           default now.  You can overide this with the function 
200           gtk_tree_set_view_line which take a tree and a boolean.
201
202 Thu Dec 18 23:26:49 CST 1997 Shawn T. Amundson <amundson@gimp.org>
203
204         * removed configure, Makefile.in, and aclocal.m4 files
205
206 Wed Dec 17 23:36:57 1997  Scott Goehring  <scott@poverty.bloomington.in.us>
207
208         * gdk/gdkcc.c (gdk_color_context_free): Caught a stray
209         gdk_colormap_destroy that Owen missed (and Shawn found).
210
211 Wed Dec 17 20:59:52 1997  Owen Taylor  <owt1@cornell.edu>
212         * gdk/gdkinput.c gdk/gdkinput.h gdk/gdkinputcommon.h
213           gdk/gdkinputxfree.h gdk/gdkinputgxi.h gdk/gdkinputnone.h.
214           gtk/gtkinputdialog.h gtk/testinput.c
215         Added support for device keys mapping to key events.
216         Fixed various bugs.
217
218 Wed Dec 17 20:53:00 1997  Owen Taylor  <owt1@cornell.edu>
219         * gdk/gdk.c gdk/gdk.h: Changed gdk_get_event to remove
220         predicate filtering, and to allocate the events.
221         Added gdk_event_get_graphics_expose for scroll handling.
222         * gtk/gtkmain.c gtk/gtktext.c:
223         Use above changes. Interface change for gtk_get_current_event.
224         * testgtk.c
225         Added another test to test new scrolling mechanism.s
226         * gdk/gdk.c gdk/gdk.h gdk/gdkwindow.c gdk/gdkprivate.h: 
227         Added beginnings of event filtering. Removed obsolte
228         OtherEvent mechanism.
229         * gdk/gdk.c: Combined FocusIn/FocusOut events. Now ignore
230         focus events which aren't for window itself. (Only pay
231         attention to NotifyAncestor/Inferior/Nonlinear)
232         * gtk/gtkwindow.c gtk/gtkwindow.h: Virtualize set_focus 
233         function so it can be overridden.
234         * gtk/gtkwidget.c: Reparenting should now work for
235         containers. (Guillaume Laurent <glaurent@worldnet.fr>)
236         * gdk/gdkgc.c: By default, GraphicsExpose events are now
237         _not_ generated.
238         * gtk/testselection.c: Suppress a warning, fix a bug?
239
240 Wed Dec 17 20:47:42 1997  Owen Taylor  <owt1@cornell.edu>
241         * configure.in, glib/configure.in: 
242         Remember if user set CFLAGS, so we can set it for --enable-debug
243           only if they didn't. 
244         Added missing quotes. )Raphael.Quinet@eed.ericsson.se)
245         Only use -DX_LOCALE if setlocale doesn't work.
246         * gdk/gdki18n.h: Simplified system for trying to get iswalnum() -
247         include <wctype.h> if present, otherwise <wchar.h> if present.
248         
249 Wed Dec 17 21:09:12 1997  Owen Taylor  <owt1@cornell.edu>
250   1997-10-13  Marius Vollmer  <mvo@zagadka.ping.de>
251
252     Bug fixes:
253         
254         * gtksignal.c (gtk_params_get): Initialize the GtkArg even when
255         the return type is GTK_TYPE_NONE.
256
257     Revamped reference counting, see the file REFCOUNTING.
258
259         * Makefile.am (EXTRA_DIST): Added REFCOUNTING.
260         * REFCOUNTING: New file.
261
262         * gdk/gdk.c (received_destroy_notify, window_to_destroy): Removed.
263         (gdk_event_get): Code that deals with the above removed.
264         (gdk_event_translate): Abort when the GdkWindow for the XEvent
265         cannot be found.  For DestroyNotify: Do not use
266         receive_destroy_notify and window_to_destroy but call
267         gdk_window_destroy_notify.
268
269         * gdk/gdk.h: (gdk_pixmap_destroy, gdk_colormap_destroy,
270         gdk_fontset_free): Removed.
271         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
272         gdk_bitmap_unref): New prototypes.
273         (gdk_font_free, gdk_font_unref): Renamed gdk_font_free to
274         gdk_font_unref.
275
276         * gdk/gdkcolor.c (gdk_colormap_real_destroy): Made static.
277         (gdk_colormap_destroy): Removed.
278
279         * gdk/gdkfont.c (gdk_font_free): Renamed to gdk_font_unref.
280         Handle fontsets as well.
281         (gdk_fontset_free): Removed.
282
283         * gdk/gdkpixmap.c (gdk_pixmap_destroy): Removed.
284         (gdk_pixmap_ref, gdk_pixmap_unref, gdk_bitmap_ref,
285         gdk_bitmap_ref): New functions.
286
287         * gdk/gdkwindow.c: (gdk_window_new, gdk_window_foreign_new): Call
288         gdk_window_ref for the pointer in the xid table.
289         (gdk_window_internal_destroy): Renamed from gdk_window_destroy.
290         New parameter XDESTROY that takes the role of `destroyed==2';
291         removed special casing of `destroyed==2'.  Free dnd_data only when
292         really destroying.  Do not touch the ref_count.  Calling
293         gdk_window_destroy on a Pixmap is now a real error, not just a
294         warning.
295         (gdk_window_destroy): Just call gdk_window_internal_destroy and
296         gdk_window_unref, as advertised in REFCOUNTING.
297         (gdk_window_destroy_notify): New function.
298         (gdk_window_unref): Print a warning when the ref_count is zero and
299         the window has not been destroyed.  Should never happen.  Do not
300         destroy the window, just free the memory.
301         
302         * gdk/gdkprivate.h (gdk_window_real_destroy): Removed.
303
304         * gtk/gtkaccelerator.c (gtk_accelerator_table_destroy): Removed.
305         (gtk_accelerator_table_unref): Do the job of
306         gtk_accelerator_table_destroy directly.
307         (gtk_accelerator_table_init): Init ref_count with 1.
308
309         * gtk/gtkaccelerator.h (gtk_accelerator_table_destroy): Removed.
310
311         * gtk/gtkcurve.c, gtk/gtkgamma.c: Replaced gdk_pixmap_destroy with
312         gdk_pixmap_unref.
313
314         * gtk/gtkhscrollbar.c (gtk_hscrollbar_realize): Reflect the fact
315         that the widget->window is used as the range->trough in the
316         ref_count.
317         * gtk/gtkvscrollbar.c (gtk_vscrollbar_realize): Likewise.
318
319         * gtk/gtkmain.c (gtk_main_iteration): Protect event_widget with
320         ref/unref while handling the GDK_DELETE and GDK_DESTROY events.
321
322         * gtk/gtkmenu.c (gtk_menu_set_accelerator_table): Don't do
323         anything when the new accel_table is the old one.
324
325         * gtk/gtkmenufactory.c (gtk_menu_factory_destroy): Unref
326         factory->table if there is one.
327         (gtk_menu_factory_create, gtk_menu_factory_create_widget): Don't
328         ref newly created accel_table, it is now created with a ref_count
329         of 1.
330
331         * gtk/gtkmenuitem.c (gtk_menu_item_set_submenu):  Don't do
332         anything when the new submenu is the old one.
333
334         * gtk/gtkpixmap.c (gtk_pixmap_destroy): New static function.
335         (parent_class): New global variable.
336         (gtk_pixmap_init): Set object_class->destroy.
337         (gtk_pixmap_set): Don't do anything about the pixmap when the new
338         pixmap is the old one.  Likewise for the mask.
339
340         * gtk/gtkprogressbar.c, gtk/gtkruler.c: Replaced
341         gdk_pixmap_destroy with gdk_pixmap_unref.
342
343         * gtk/gtkrange.c (gtk_range_set_adjustment):  Don't do
344         anything when the new adjustment is the old one.
345
346         * gtk/gtkrc.c: Replaced gdk_fontset_free/gdk_font_free with
347         gdk_font_unref.
348
349         * gtk/gtkstyle.c (gtk_style_new): Initialize ref_count with 1.
350         (gtk_styles_init): Replace gtk_style_destroy with gtk_style_unref
351         for the cache.
352         (gtk_style_new_from_key): Ref style before returning it when it
353         has not been newly created.
354         (gtk_style_destroy): Don't look at the ref_count, destroy always.
355         Free style-font with gdk_font_unref, regardless of font->type.
356
357         * gtk/gtktooltips.c (gtk_tooltips_real_destroy): Renamed from
358         gtk_tooltips_destroy and made static.  Don't look at ref_count,
359         destroy always.
360         (gtk_tooltips_new): Initialize ref_count with 1.
361         (gtk_tooltips_unref): Don't look at pending_destroy, destroy
362         always when ref_count is 0.
363         (gtk_tooltios_widget_remove): Use gtk_tooltips_destroy_data
364         instead of hand-coded destruction.
365
366         * gtk/gtktooltips.h (GtkTooltips::pending_destroy): Removed.
367         (gtk_tooltips_destroy): Removed.
368
369         * gtk/gtkviewport.c (gtk_viewport_set_hadjustment,
370         gtk_viewport_set_vadjustment): Don't do anything when the new
371         adjustment is the old one.
372
373         * gtk/gtkwidget.c (gtk_widget_reparent): Protect the reparented
374         widget with ref/unref while moving it.
375         (gtk_widget_set_default_colormap): Replace gdk_colormap_destroy
376         with the proper ref/unref spell.
377         (gtk_widget_set_default_style): Don't do anything when the new
378         style is the old one.
379
380         * gtk/testinput.c (configure_event): Replaced gdk_pixmap_destroy
381         with gdk_pixmap_unref.
382         
383     More Interpreter support:
384
385         * gdk/gdktypes.h (GdkDestroyNotify): New type.
386         
387         * gdk/gdk.c (struct _GdkInput::destroy): New field.
388         (gdk_input_add_interp): New version of gdk_input_add that follows
389         the interp conventions for callbacks.
390         (gdk_input_add): Implement in terms of gdk_input_add_interp.
391         (gdk_input_remove): Call destroy notify when appropriate.
392
393         * gdk/gdk.h (gdk_input_add_interp): New prototype.
394
395         * gtk.defs: Updated from guile-gtk.
396         * gtk/gtktypebuiltins.c, gtk/gtktypebuiltins.h: Regenerated.
397         
398         * gtk/gtkmain.c (GtkInputFunction, struct _GtkInputFunction): New
399         types.
400         (gtk_invoke_input_function, gtk_destroy_input_function,
401         gtk_input_add_interp, gtk_input_remove): New functions.
402
403 Wed Dec 17 12:00:48 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
404
405         * gdk/gdkcc.c: New GdkColorContext functionality!  This should
406         eventually solve all of our color management problems.  Gdk still
407         needs to be modified to support visuals with less than 8 bpp.  Gtk
408         needs to be modified just a bit.
409
410 Wed Dec 17 13:56:17 PST 1997 Manish Singh <yosh@gimp.org>
411
412         * a small patch by Lauri Alanko that allows Gimp to pass
413         on --display to it's plugins.
414
415 Sun Dec 14 00:08:00 PST 1997 Raph Levien <raph@acm.org>
416         * a minor patch to make the file selection dialog not always
417         select the first file in a directory
418
419 Sat Dec 13 Jay Painter <jpaint@serv.net>
420         * gtk/gtkvscrollbar.c: added focus flag so vertical scrollbars
421         can get keyboard focus
422
423 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
424         * Removed warning when XGetWindowProperty fails - this can
425           be the desired behavior.
426         
427 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
428         * gdk/makecursor* gdk/makekeysym* gdk/Makefile.am
429           Removed old sed/awk code and replaced it with a 
430           spiffier awk-only code from Art_Haas@dril-quip.com
431         
432 Fri Dec 12 Owen Taylor <owt1@cornell.edu>
433         * gdk/gdkgc.c: If gdk_gc_set_clip_rectangle is called with
434           rectangle = NULL, remove clip mask, instead of segfaulting.
435         * gtk/gtknotebook.c: Set clip mask before redrawing, so that
436           we don't overwrite things outside of exposed areas when
437           drawing them shadows. (Based on a patch from 
438           Lars Hamann <hamann@braunschweig.netsurf.de>, and Stefan Jeske)
439         
440 Thu Dec 11 10:57:29 CST 1997 Shawn T. Amundson <amundson@gimp.org>
441         * Change to ltconfig to remove -z text for Solaris x86  
442         * Change to configure stuff so compile works on Solaris x86
443         * Added gdk/gdkkeysyms.h and gdk/gdkcursors.h back into the tree
444
445 Thu Dec 11 09:44:03 1997  Tim Janik  <timj@psynet.net>
446
447         * gdk.c: added gdk_progclass==NULL patch by Oliver Graf <ograf@fga.de>.
448
449 Wed Dec 10 23:40:03 1997  Tim Janik  <timj@psynet.net>
450
451         * fixed some compiler errors, because g_return_if_fail() wasn't used
452         with a trailing semicolon in some places. fixed few other warnings also.
453
454 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
455         * configure changes: (configure.in, glib/configure.in)
456         Change test ! `...` to test -z `...`
457           (Harald Meland <Harald.Meland@usit.uio.no>)
458         Change $gtk_cv_x_locale to $need_x_locale so it isn't cached.
459         With --enable_debug, don't touch CFLAGS if they're already set.
460
461 Tue Dec  9 Owen Taylor <owt1@cornell.edu>
462         * gdk/gdkpixmap.c: don't use gdk_black/white for pixmap mask.
463          From Patrice Fortier <Patrice.Fortier@aquarel.fr>
464
465 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
466         * gtk/testselection.c (selection_received): foreward -> forward.
467         * gtk/gtktext.c (gtk_text_forward_delete): Renamed; changed all
468         callers.
469         * gtk/gtktext.h: foreward -> forward.
470           From Tom Tromey  <tromey@cygnus.com>
471
472 Mon Dec  8 Owen Taylor <owt1@cornell.edu>
473         * gtk/gtkimage.c: Fixes to expose() handler
474           From Rob Browning <rlb@cs.utexas.edu>
475         
476 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
477         * gtk/gtklabel.h:
478         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
479         is used by the new gtktooltips.c.
480         * gtk/testgtk.c (create_labels, create_main_window): A new test
481         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
482
483 Mon Dec  8 21:09:43 PST 1997 Geoffrey T. Dairiki <dairiki@alumni.caltech.edu>
484         * gtk/gtklabel.h:
485         * gtk/gtklabel.c: Add support for GTK_JUSTIFY_FILL.  This support
486         is used by the new gtktooltips.c.
487         * gtk/testgtk.c (create_labels, create_main_window): A new test
488         window for labels (to test the new GTK_JUSTIFY_FILL'ed labels.)
489
490 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
491         * gdk/gdk.c, gdk/gdk.h, gdk/gdktypes.h: 
492           Remove dependencies of interfaces on USE_XIM
493         * gdki18n.h: Attempt to make wchar handling more portable
494         * gdkwindow.c: Include config.h. (For gdkinput.h)
495         
496 Sun Dec  7 Owen Taylor <owt1@cornell.edu>
497         * gtk/gtkentry.c, gtk/gtkentry.h: 
498            Fixed word motion
499            Added cut/copy/paste via X clipboard
500            Generalized extending selection using <Shift> to work with all types
501              of motion, not just arrow keys.
502            Don't change length of GtkEntry structure because of USE_XIM
503
504 Sun Dec  7 03:19:02 1997  Tim Janik  <timj@psynet.net>
505
506         * gtkfilesel.c: applied jamesa-971010-0 for stability.
507         * gtkrc.c: applied jamesa-971010-2 for a small optimization.
508         * gtkcheckmenuitem.h:
509         * gtkcheckmenuitem.c:
510         * gtkradiomenuitem.c:
511         * testgtk.c: applied johannes-971113-0 which adds
512         gtk_check_menu_item_set_show_toggle() to change the way check
513         menu items and radio menu items look.
514
515 Fri Dec 5 1997 Elliot Lee <sopwith@cuc.edu>
516         * gdk/gdk.c: clean up warnings, remove some un-ifdef'd debugging
517         printing, DnD is Bug Free now, etc.
518         * gtk/gtkcolorsel.c: fix DnD support.
519         * gtk/gtkmain.c: DnD events go to the original window even if
520         there is a grab - if I drop on a window the data had better go
521         to it and not some other window :)
522         * gtk/testgtk.c: Replace (GtkSignalFunc) with GTK_SIGNAL_FUNC(),
523         and do a nicer DnD demo.
524         * My very first ChangeLog entry, seeing as people have
525         a fixation on them (what's wrong with "rcs2log" output?)
526
527 Thu Dec 4 1997 Owen Taylor <owt1@cornell.edu>
528         * gdk/gdkgc.c: Ignore gdk_gc_set_font if font is a fontset.
529
530 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
531         * gtk/gtkstyle.c: fixed a problem introduced recently in 
532         gtk_style_detach witch crashed script_fu.
533
534 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
535         * gdk/Makefile.am: add a dependence for $(DEP_FILES) on
536         $(BUILT_SOURCES) to work around automake problem
537         
538 Wed Dec 3 1997 Owen Taylor <owt1@cornell.edu>
539         * configure.in glib/configure.in glib/glibconfig.h.in gdk/gdk.h
540         gdk/gdk18n.h gdk.c gtk/gtkentry.c: Try to handle variations in 
541         <wchar.h> headers gracefully. Do not automatically include 
542         gdk/gdki18n.h.
543         
544 Wed Dec 3 1997 Jay Painter <jpaint@serv.net>
545         * gtk/gtkoptionmenu.c: fixed a old bug where if you set a new 
546         menu for a optionmenu the widget would not get positioned correctly
547         inside of the optionmenu.
548
549 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
550         * gdk/gdkpixmap.c: Include unistd.h to get SEEK_END
551         for SunOS (john_johns@credence.com)
552         
553 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
554         * gtk+/fnmatch.c: Define _GNU_SOURCE before including
555         fnmatch.h to make sure all constants are defined.
556         (Yasuhiro SHIRASAKI <joke@awa.tohoku.ac.jp>)
557         
558 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
559         * configure.in, glib/configure.in: Make the logic to add -Wall,
560         -ansi, -pedantic for GCC operational.
561
562 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
563         * glib/glib.h, glib/configure.in. Disabled gldouble, since
564         it wasn't used anywhere and caused portability problems
565
566 Tue Dec 2 1997 Owen Taylor <owt1@cornell.edu>
567         * glib/glib.h, glib/configure.in, glib/glibconfig.h.in: Added a
568         g_memmove function which is simply memmove if it exists, otherwise
569         bcopy.(Should really check if bcopy has the correct semantics, and
570         create our own memmove is necessary) 
571         * glib/gstring.c, glib/garray.c, gtk/gtktext.c:
572         memmove => g_memmove
573         
574 Sun Nov 30 1997 Jay Painter <jpaint@serv.net>
575         * gtk/gtknotebook.c: fixed a old bug where all the notebook pages
576         which were not displayed when the notebook widget was realized were
577         never size allocated when they were realized.
578
579 Thr Nov 28 1997 Jay Painter <jpaint@serv.net>
580         * gtk/gtklist.h: removed GtkSelectionMode
581         * gtk/gtkenums.h: added GtkSelectionMode
582
583 Fri Nov 28 01:26:55 1997  Tim Janik  <timj@psynet.net>
584
585         * gtk/gtkwindow.c (gtk_window_show): propagate a size_request before
586         the initial window creations (prevents windows with size of -1x-1).
587
588         * gtk/gtkmain.c (gtk_main_level): new function to determine
589         the current recursion level of gtkmain().
590         (gtk_true) (gtk_false): new functions implemented as a convenience
591         for signals that just need a handler with the appropriate return value.
592
593 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
594         gdk.c: Fix so that "other_events" are actually generated
595
596 Tue Nov 25 1997 Owen Taylor <owt1@cornell.edu>
597         Patches to support internationalized input by:
598           Takashi Matsuda <matsu@arch.comp.kyutech.ac.jp>
599           TANAKA Shinya <shinya@race.u-tokyo.ac.jp>
600
601         From the README:
602         
603         Feature:
604           Followings are the main feature of this patch.
605             * support XIM protocol.
606             * GtkEntry widget support Over-The-Spot and Root style input.
607             * input style is configurable by command-line option.
608
609         Furthermore, this patch includes several changes which are useful 
610           without XIM too.
611         
612             * copy and paste with other clients by compound text.
613             * Window title can be specified by multi byte string.
614
615         configure.in: 
616           Added --with-locale and --enable-xim options
617         gdk/Makefile.am:
618         gdk/gdki18n.h [new file]
619           Multibyte string manipulation functions
620         gdk/gdk.c
621         gdk/gdk.h
622         gdk/gdkprivate.h
623           Input method and context handling functions
624           Command line options to control input methods
625           Changes to KeyPress handling to support input methods
626           Fixes to not return events for destroyed windows
627         gdk/gdkselection.c
628           Text property handling functions
629         gdk/gdkwindow.c
630           Set window title by multibyte string
631         gtk/gtkentry.c
632           Support for using an input context for XIM input.
633           Cut and paste using compound text.
634           Improvements to pasting (no longer replace the active selection
635             with itself OWT)
636         gtk/gtkselection.c
637           fix to send selection clear events to the right owner
638         gtk/testgtkrc
639           Added a default fontset that will allow international characters
640         INSTALL
641           Some rudimentary documentation about the new configuration options.
642         
643 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
644         gtk/gtkaspectframe.c:
645         Some minor improvements to rounding in aspectframes.
646         Make sure that child allocation is always >= 0
647         Always trigger size allocation with gtk_widget_queue_resize
648         to prevent calling size_allocate before allocation done.
649
650 Mon Nov 24 1997 Owen Taylor <owt1@cornell.edu>
651         gtk/gtkframe.c:
652         Changed tests for drawability to GTK_WIDGET_DRAWABLE
653         Always trigger size allocation with gtk_widget_queue_resize
654         to prevent calling size_allocate before allocation done.
655
656 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
657         gtk-dairiki-971117-2.patch
658         gtk/gtkaspectframe.c (gtk_aspect_frame_size_allocate): When
659         computing new dimensions of the subwidget, round to nearest
660         integer rather than truncating.
661
662 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
663         gtk-dairiki-971117-1.patch
664         * gtk/gtkvruler.c (gtk_vruler_draw_ticks):
665         * gtk/gtkhruler.c (gtk_hruler_draw_ticks): Ensure that subticks
666         always are drawn when they should be (sometimes they were getting
667         drawn with zero length --- invisible).  Also clear rectangle
668         behind text labels to ensure they don't touch or overlap ticks. 
669
670 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
671         * gtk/gtkaspectframe.c (gtk_aspect_frame_set): 
672         gtk-dairiki-971117-0.patch
673         Clear window when aspect ratio or alignment is changed.
674
675 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
676         * gtk/gtkobject.h: fixed GTK_OBJECT_NSIGNALS macro
677
678 Mon Nov 24 1997 Jay Painter <jpaint@serv.net>
679         * gtk/gtklabel.h: modified gtklabel to clip its drawing to
680         its given area, now it will always draw in the area it's 
681         been given and clip accordingly.  Note: this may cause
682         the a label to disappear on widgets which don't give their
683         child labels proper area!
684
685 Mon, 17 Nov 1997 Michael K. Johnson <johnsonm@redhat.com>
686         * gtkwidget.c: gtk_set_style_recurse was not allowing updated
687         widget names to cause new styles to be applied.
688         * gtkentry.c gtkentry.h: The entry widget now has invisible
689         attribute.  The cursor does not move to show you typing; this
690         is an intentional design decision but I'm not so attached to it
691         that I'll reverse any patches that change it...  :-)
692
693         This patch is a modified version of a patch to which I have
694         lost the attribution.  I modified it by packing the "visible"
695         flag into the structure more tightly (without damaging backwards
696         compatibility on sane systems) and by allowing entry timers
697         to run.
698
699 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
700         * gtkviewport.c: Raph's Mon, 10 Nov 1997 patch to gtk-list 
701         to fix some viewport bugs
702
703 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
704         * gtk/gtkwidget.c: gtk-ajaborsk-971016-2
705         A little patch again to prevent user to use gtk_widget_set_events()
706         when a widget is already realized.
707         In this case, the gtk_widget_set_events() doesn't work.
708
709 Mon Nov 17 1997 Jay Painter <jpaint@serv.net>
710         * gtk/gtkwindow.c: gtk-ajaborsk-971016-1
711         This small patch correct position for GTK_WIN_POS_CENTER and
712         GTK_WIN_POS_MOUSE GtkWindow positions.
713
714 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
715         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
716         * gdk/gdk.h: header for above
717
718 Sat Nov 15 1997 Jay Painter <jpaint@serv.net>
719         * gdk/gdkgc.c: added function gdk_gc_set_clip_rectangle
720         * gdk/gdk.h: header for above
721
722 Wed Nov 12 1997 Jay Painter <jpaint@serv.net>
723         * gdk/gdkpixmap.c: Patrice Fortier's patch for transparent pixmaps.
724         * gdk/gdk.h:
725           gdk/gdkdraw.c: Patrice Fortier's patch to add pixel draw function.
726
727 Sun Nov  9 1997 Jay Painter <jpaint@serv.net>
728         * Fixed problems with makefiles relating to the bug
729         which required glib to be installed.
730         * Fixed makefiles to incluce the xpm's in gtk+/gtk needed
731         for testgtk.
732         * Updated gtk+ and gtk+/glib to libtool-1.0f
733
734 Fri Nov  7 1997 Jay Painter <jpaint@serv.net>
735         * gtk/gtktext.c: return char_widths[ch & 0xff]; in line 2152
736
737 Thr Nov  5 1997 Jay Painter <jpaint@serv.net>
738         * gtk/testgtk.c: added drag and drop test, removed the test hack
739         from the button test
740
741 Tue Nov  4 08:28:57 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
742
743         * gtk/gtkmain.c (gtk_handle_idle): Patch from David Mosberger to
744         avoid crashes when handling idle function (this manifested itself
745         in the Umax and Microtek backends in SANE.
746
747 Sun Nov  2 07:34:56 1997  Tim Janik  <timj@psynet.net>
748
749         * gtk/gtkfilesel.c: Small fixes about a segmentation viaolation
750         cause by a double click in the directoy list (introduced by my
751         previous changes).
752         
753         * gtk/gtklist.c: Small fixes to gtk_list_add() and gtk_list_remove().
754         
755         * gtk/testgtk.c (list_add): Applied Stefan Wille's patch to make this
756         function do something ;).
757
758 Fri Oct 31 Jay Painter <jpaint@serv.net>
759         *gdk/gdk.c: reformatted DND code for GTK coding standards
760         *gdk/gdkwindow.c: changed memory allocation for DND to q_mem stuff
761
762 Thu Oct 30 Jay Painter <jpaint@serv.net>
763         * gdk/gdkwindow.c: 
764         * gdk/gdk/gdk.h:
765         * gtk/gtkwidget.h:
766         * gtk/gtkwidget.c: Applied Stephan Willie's shaped window patch
767
768         * gdk/gdkwindow: 
769         * gdk/gdk.h:
770         * gtk/gtkwidget.h:
771         * gtk/gtkwidget.c: reformatted the DND code to conform to GTK
772                 coding standards
773
774         * gtk/testgtk: massive fixes, SW's shaped window example
775
776 Thu Oct 30 07:33:27 1997  Tim Janik  <timj@psynet.net>
777
778         * gtk/gtklistitem.c (gtk_real_list_item_toggle): applied Johannes
779         Keukelaar's <johannes@nada.kth.se> patch for keyboard support in
780         GtkList widgets.
781
782         * gtk/gtkfilesel.c: adapted dir and file list selection
783         behaviour to deal with keyboard selections. this is a little
784         bit tricky: in the dir list it just changes the entrys value on a one
785         button press. but on a keyboard selection via gtk_widget_activate() it
786         does a new population (likewise on a double click) as this seems more
787         obvious.
788
789 1997-10-25  Marius Vollmer  <mvo@zagadka.ping.de>
790
791         * gdk/gdkcolor.c (gdk_colormap_get_system): Initialize
792         private->ref_count.
793
794 Wed Oct 22 09:47:43 1997  Tim Janik  <timj@psynet.net>
795
796         * gtk/gtkwindow.c (gtk_window_key_release_event): Fixed a stupid
797         bug that caused the key_release_event to be propagated twice.
798
799 Sun Oct 12 11:01:43 1997  Tim Janik  <timj@psynet.net>
800
801         * acconfig.h:
802         * configure.in:
803         * gdk/gdkimage.c: Added configure check for IPC_RMID_DEFERRED_RELEASE,
804         because shmat() fails after a shmctl(..., IPC_RMID,...) for OSF1 V3.2,
805         SunOS 4.1.1, 5.5, 5.5.1, 5.6, IRIX 5.2 and 6.2.
806
807 Mon Oct  6 11:59:07 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
808
809         * gdk/gdk.c (gdk_event_translate): In line 1693, fixed typo that
810         would cause motion notify events not to be delivered.
811
812 Sun Oct  5 18:15:06 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
813
814         * gtk/gtkrc.c (gtk_rc_parse_bg_pixmap): Changed strdup() for
815         g_strdup().
816
817 Wed Sep 24 17:16:34 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
818
819         * configure.in: Fixed a stupid error in the test for libXext that
820         would cause it to fail if X_EXTRA_LIBS was not empty.
821
822         * gtk/gtkmain.h (gtk-timj-970919.patch):
823         * gtk/gtkmain.c (gtk-timj-970919.patch): new function
824         `gtk_idle_remove_by_data' to remove all idle callbacks that take a
825         specific piece of data as argument.  (gtk_get_current_event):
826         remove idles through gtk_idle_remove_by_data.
827         
828         * gtk/gtkwidget.c (gtk-timj-970919.patch):
829         (gtk_widget_destroy): remove pending idles for
830         widgets that have GTK_REDRAW_PENDING or GTK_RESIZE_PENDING and
831         GTK_ANCHORED set (only anchored widgets can have a resize queue
832         handler pending). widgets that have GTK_RESIZE_NEEDED will be removed
833         from their anchored toplevels `resize_widgets' list.
834         
835         (gtk_widget_queue_draw): let the widget remember the queue handler
836         tag (through `redraw_handler_key') for later call to `gtk_idle_remove'.
837         
838         (gtk_widget_queue_resize): let the widget remember the queue handler
839         tag (through `resize_handler_key') for later call to `gtk_idle_remove'.
840         corrected referencing the toplevel widget for which the handler is
841         pending. if a widget is added to the `resize_widgets' list of a
842         toplevel widget, GTK_RESIZE_NEEDED is set and it's referenced.
843         
844         (gtk_real_widget_queue_resize): on the deletion of the `resize_widgets'
845         list, unset GTK_RESIZE_NEEDED and unreference the removed widgets.
846         
847         * gtk/gtkwindow.c (gtk-timj-970919.patch):
848         (gtk_real_window_move_resize): move `resize_containers = NULL'
849         initialization out of if-statement.
850         while stepping through the `resize_widgets' list, unreference the
851         widgets and clear GTK_RESIZE_NEEDED. if a widget realy needs are
852         resize, they are flagged through GTK_RESIZE_NEEDED now (instead of
853         GTK_RESIZE_PENDING, as this is indicative for a pending handler).
854         added checks to provide segfaulting if a widgets parent pointer
855         is NULL (e.g. on toplevel widgets that have GTK_RESIZE_NEEDED set).
856
857 Tue Sep 23 13:23:27 1997  Federico Mena  <federico@bananoid.nuclecu.unam.mx>
858
859         * gdk/gdkimage.c: Applied Tim Janik's patch to mark shm segments
860         as IPC_RMID so that they are automatically removed always.
861
862         * gdk/gdkfont.c: Removed casts from lvalues.
863
864         * gtk/gtkmain.c: Removed GTK_RETLOC_*() (which do a cast) from lvalues.
865
866         * gtk/gtkaccelerator.c (gtk_accelerator_table_remove): Added
867         "const" to the accelerator_key param to be consistent with the
868         declaration in gtkaccelerator.h.  The const is not useful in this
869         case, anyway.
870
871 Tue Sep 16 13:11:06 1997  Peter Mattis  <pmattis@bjork.inktomi.com>
872
873         * gtkpreview.c: Andrew Logan Kieschnick's change to eliminate
874         round-off error when gamma is set to 1.0.
875
876         * gtkrange.c:
877         * gtkviewport.c: Jay Painter's changes to modify the way in which
878         viewports resize.
879
880         * gdkinput.c:
881         * gdkinputgxi.h:
882         * gdkinputxfree.h:
883         * gtk/Makefile.am:
884         * gtk.h:
885         * gtkeventbox.c:
886         * gtkeventbox.h: Owen Taylor's event box widget and fixes for X
887         input support (that I had broken).
888
889         * gdk.h:
890         * gdkwindow.c:
891         * gtksignal.h:
892         * gtksignal.c: Elliot Lee's changes to support Objective C. (id is
893         apparently a reserved word in Objective C).
894
895 Sun Sep 14 22:33:15 1997  Peter Mattis  <pmattis@localhost>
896
897         * gtkwidget.c (gtk_widget_queue_resize): If the toplevel container
898         is invisible we simply call "gtk_container_need_resize" on
899         it. This fixes a bug with option menus not redrawing correctly.
900
901         * gtkmenuitem.c (gtk_menu_item_enter): (gtk_menu_item_leave):
902         These functions now simply pass the event on to their parent. This
903         is necessary for menus to work properly due to the change in how
904         grabs are dealts with.
905
906         * gtkwindow.c (gtk_real_window_move_resize): Fixed a bug that
907         caused the GTK_RESIZE_PENDING flag to not be unset in some cases.
908
909 Fri Sep  5 20:49:37 1997  Marius Vollmer  <mvo@zagadka.ping.de>
910
911         Bug fixes:
912
913         * Makefile.am: Added PATCHES to EXTRA_DIST.
914         * gtk/gtkpixmap.c (gtk_pixmap_new): Move the "pixmap != NULL" test
915         after the allocation of the pixmap.
916
917         To shut up the compiler:
918
919         * gtk/gtkfilesel.c (get_pwdb): Initialize home_dir.
920         * gtk/gtkmain.c (gtk_init): Replace comments around calls to
921         g_set_*_handler with "if (0)".
922         * gtk/gtkrc.c (gtk_rc_get_token): Initialize hex_number and
923         float_number.
924         * gtk/gtkwindow.c (gtk_window_key_press_event): Initialize
925         direction.
926
927         Changes to the type system in gtk/:
928
929         * Makefile.am: Added gtktypebuiltins.h to gtkinclude_HEADERS.
930         Added gtk.defs, runelisp, gentypeinfo.el and gtktypebuiltins.c to
931         EXTRA_DIST.  Added rules to generate gtktypebuiltins.* from
932         gtk.defs.
933
934         * runelisp, gentypeinfo.el, gtk.defs: New files.
935
936         * gtkaccelerator.c, gtkaccelerator.h (gtk_accelerator_table_ref):
937         Return the table so that this function can be used as the `copy'
938         function for GTK_TYPE_BOXED values.
939         * gtkstyle.c, gtkstyle.h (gtk_style_ref): Likewise.
940
941         * gtkenums.h: Removed GtkArgType enum.
942
943         * gtkmain.c (gtk_init): Call gtk_type_init to initialize the type
944         system.
945
946         * gtkobject.c (gtk_object_init_type): New function to take over
947         for gtk_object_get_type. (gtk_object_get_type): Just return the
948         constant GTK_TYPE_OBJECT. (gtk_object_collect_args): Do the right
949         thing for the new GTK_TYPE_* types.
950         * gtksignal.c (gtk_params_get): Likewise.
951
952         * gtktypeutils.c: (gtk_type_init_builtin_types): New
953         function. (gtk_type_init): Call it.  Also made non-static.
954         (gtk_type_unique): The allocation scheme for numerical ids has
955         changed: The low 8 bits hold the appropriate GtkFundamentalType of
956         a type, the rest is a globally unique sequence number.
957         (gtk_type_hash): Use the sequence number of a key to hash it.
958         (gtk_type_register_builtin): New function.
959
960         * gtktypeutils.h: (GtkFundamentalType): New enumeration of the
961         fundamental types. (GTK_TYPE_MAKE, GTK_FUNDAMENTAL_TYPE,
962         GTK_TYPE_SEQNO): New macros to work with the new id scheme.
963         (GtkArg): Added fields for new types and renamed old ones.  GtkArg
964         should now be a mostly opaque structure, except name and type.
965         (GTK_VALUE_*): New macros to access the values of a GtkArg.
966         (GTK_RETLOC_*): New macros to access the location of a return
967         value that is contained in a GtkArg.  * gtktypebuiltins.h: New
968         file to access the typeids of the builtin types.
969
970         * gtkwidget.h (GTK_TYPE_WIDGET): New macro to access the type id
971         of the widget class.
972
973         Thru out: Changed GTK_ARG_* to the appropriate GTK_TYPE_*.
974         Changed access to GtkArg structure to the appropriate GTK_VALUE_*
975         or GTK_RETLOC_* macro.  Changed GtkArgType to GtkType.  Changed
976         some guints to GtkType.
977
978         General changes in gtk/ to support interpreters:
979
980         * gtkradiobutton.c (gtk_radio_button_new_from_widget,
981         gtk_radio_button_new_with_label_from_widget): New functions.
982
983         * gtksignal.c (gtk_signal_connect_no_marshal): New function.
984         (struct _GtkHandler): Added no_marshal and destroy_func fields.
985         (gtk_signal_handler_new): Initialize them.
986         (gtk_signal_connect_by_type): Added no_marshal and destroy_func
987         arguments.  Changed all callers.
988         (gtk_signal_destroy): Invoke destroy_func if there is one and the
989         global destroy func does not apply.  (gtk_handlers_run): If the
990         handler has no_marshal set, call its function directly without
991         going thru the signal's marshaller.
992
993 Wed Sep  3 09:56:22 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
994
995         * gtkrange.c: Changed the way the range control focus was drawn so
996         that the range control is drawn correctly when it does not have
997         the focus.
998
999 Tue Sep  2 17:41:17 1997  RHS Linux User  <pmattis@bjork.inktomi.com>
1000
1001         * gtkwidget.c: 'gtk_real_widget_queue_resize' should only remove
1002         the "resize_widgets" if another resize is not pending.
1003
1004 Mon Sep  1 18:28:08 1997  Peter Mattis  <pmattis@localhost>
1005
1006         * gtkmain.c: Changed the way GDK_DELETE events are handled. Only,
1007         if 'gtk_widget_event' returns TRUE is the widget destroyed. By
1008         default, 'gtk_widget_event' will return FALSE causing the window
1009         to not be destroyed. This prevents segfaults in the GIMP and other
1010         programs that do not correctly handle GDK_DELETE events.
1011
1012         * gtkmain.c: Added modal dialog support by allowing events
1013         destined for a child of the grab widget to go to the child instead
1014         of the grab widget. (Added 'gtk_widget_is_ancestor' to determine
1015         the relationship between the grab widget and the event widget).
1016
1017         * *.[ch]: Incorprated a whole mess of patches. (Started keeping
1018         the ChangeLog up to date again).
1019
1020 Thu Jun  5 17:22:21 1997  Peter Mattis  <pmattis@localhost>
1021
1022         * gtkmenufactory.c:
1023         * gtkmenufactory.h: Added 'gtk_menu_factory_remove_*'
1024         calls. Removing entries/paths causes the associated widgets to be
1025         destroyed.
1026
1027         * gtkwidget.c:
1028         * gtkwidget.h: Calling 'gtk_widget_set_style' is used as an
1029         indication that the programmer specifically wants that style to be
1030         used. RC-style substitution is disabled for the widget after such
1031         a call.
1032
1033         * gtkpixmap.c:
1034         * gtkpixmap.h:
1035         * gtkimage.c:
1036         * gtkimage.h: Changed to use clip mask and a single pixmap (or
1037         image) to deal with transparent areas.
1038
1039         * gdkpixmap.c: Modified xpm loading routines to optionally return
1040         a clip mask.
1041
1042         * gdkgc.c:
1043         * gdkdraw.c:
1044         * gdktypes.h: Modifications to allow clip masks to be used with
1045         gc's. Clip masks are bitmaps that specify drawable regions.
1046
1047 Thu May  1 03:11:51 1997  Peter Mattis  <pmattis@localhost>
1048
1049         * gtkscrolledwindow.c: Scrolled windows need to have the
1050         GTK_NO_WINDOW flag set. Not having it set caused an obscure
1051         redrawing bug.
1052
1053 Wed Apr 30 12:38:03 1997  Peter Mattis  <pmattis@localhost>
1054
1055         * gtkhruler.c:
1056         * gtkvruler.c: Fixed a small bug that caused the indicator to be
1057         positioned slightly off.
1058
1059 Sun Apr 27 14:28:21 1997  Peter Mattis  <pmattis@localhost>
1060
1061         * gtkmenushell.c:
1062         * gtkmenushell.h:
1063         * gtkmenu.c:
1064         * gtkmenu.h: Changes so that if a menu is popped up there is a
1065         timeout period during which a menu item will not be activated and
1066         if the mouse button is released in that period the menu will stay
1067         popped up.
1068
1069         * gtkcurve.c:
1070         * gtkcurve.h: Included curve widget courtesy of David
1071         Mosberger-Tang (davidm@azstarnet.com).
1072
1073         * gtkentry.c:
1074         * gtkentry.h: Changed "insert" and "delete" signals to
1075         "insert_text" and "delete_text" respectively. (The symbol "delete"
1076         cannot be used since it is a C++ reserved word).
1077
1078 Sat Apr 19 01:43:49 1997  Peter Mattis  <pmattis@localhost>
1079
1080         * gtkmenufactory.c: A path which ends in "<nothing>" will cause an
1081         invisible (hidden) menu entry to be created. This is useful for
1082         setting an accelerator key for which a corresponding menu entry is
1083         not desired.
1084
1085         * gtktooltips.c: Fixed some problems with destruction of the
1086         active tip widget not properly updating the tooltips data
1087         structures.
1088
1089 Fri Apr 18 15:09:45 1997  Peter Mattis  <pmattis@localhost>
1090
1091         * gtkcontainer.c:
1092         * gtklist.c:
1093         * gtkwidget.c:
1094         * gtkwidget.h: Patch from Owen Taylor (owt1@cornell.edu) which
1095         fixes problems with destruction of objects and with destruction of
1096         objects which hold the focus.
1097
1098 Thu Apr 17 11:29:15 1997  Peter Mattis  <pmattis@localhost>
1099
1100         * gtkmenushell.c: Incorrect logic in
1101         'gtk_menu_shell_button_release' for deciding when a menu should
1102         stay popped up when the mouse button is released.
1103
1104         * *.c: Miscellaneous fixes from folks on the net.
1105
1106 Tue Apr 15 02:43:17 1997  Peter Mattis  <pmattis@localhost>
1107
1108         * *.c:
1109         * gtkwidget.h: Added GTK_BASIC widget flag which when set
1110         specifies a widget as "basic". A "basic" widget is one which
1111         doesn't take input events. For example, labels, pixmaps, boxes,
1112         tables, alignments, etc.
1113
1114 Sat Apr 12 15:23:08 1997  Peter Mattis  <pmattis@localhost>
1115
1116         * gtkcolorsel.c: Add "#include <math.h>" to define M_PI.
1117
1118         * gtksignal.c: Fixed a bug in 'gtk_signal_emit' which showed up
1119         because of the new cast checking macros. The 'object' was being
1120         accessed after it had been destroyed.
1121
1122         * gtkoptionmenu.c: Fixed bug with using 'GTK_BIN' instead of
1123         'GTK_BUTTON' which showed up because of the new cast checking
1124         macros.
1125
1126         * *.h: 'GTK_CHECK_CAST', 'GTK_CHECK_CLASS_CAST' and
1127         'GTK_CHECK_TYPE' used by standard widget macros everywhere.
1128
1129 Wed Apr  9 00:54:17 1997  Peter Mattis  <pmattis@localhost>
1130
1131         * docs/gtk.texi: Started further work on documentation. Major
1132         changes and additions are being made.
1133
1134         * gtkarrow.c:
1135         * gtkarrow.h: Removed function 'gtk_arrow_get'.
1136
1137         * gtkcontainer.c: 'gtk_container_check_resize' no performs
1138         additional checking to account for the case where the containers
1139         allocation is no longer sufficient because its parent (or its
1140         parents parent, etc.) needs to resize its children.
1141
1142 Tue Apr  8 21:15:50 1997  Peter Mattis  <pmattis@localhost>
1143
1144         * gtkstyle.c: Fixed a bug in 'gtk_style_init' in which the font
1145         was not ref'd (via 'gdk_font_ref'), but was free'd (via in
1146         'gdk_font_free') in 'gtk_style_destroy'. (David
1147         Mosberger-Tang). Also cleaned up 'gtk_style_destroy' while I was
1148         at it.
1149
1150         * gtkmain.c: Fixed a bug in 'gtk_propogate_event' which caused
1151         entry widgets (and probably other widgets) not to be destroyed in
1152         some instances.
1153
1154 Mon Apr  7 01:20:38 1997  Peter Mattis  <pmattis@localhost>
1155
1156         * gtkentry.c:
1157         * gtkentry.h: Changed the "insert_text", "delete_text" and
1158         "changed_text" signals to "insert", "delete", and "changed"
1159         respectively. They really should have been named this way
1160         originally except the previous signal mechanism prevented
1161         duplicate signal names. ("changed" is also used by adjustments).
1162
1163         * gtkradiomenuitem.c:
1164         * gtkradiomenuitem.h: New widget.
1165
1166         * gtkcheckmenuitem.c:
1167         * gtkcheckmenuitem.h: New widget.
1168
1169         * gtksignal.c: Modified 'gtk_signal_lookup' to require an object
1170         type to be passed as a parameter. In addition, signals are now
1171         only needed to be uniquely defined in their branch of the class
1172         hierarchy. This allows the same signal name to be used in two
1173         different branches of the class hierarchy. For instance, the
1174         "changed" signal is used both by adjustments and entries...in
1175         different ways!
1176
1177         * gtktypeutils.c: Added 'gtk_type_parent' which returns the parent
1178         type for a given type.
1179
1180 Sun Apr  6 22:08:35 1997  Peter Mattis  <pmattis@localhost>
1181
1182         * gtkwidget.c: If a widget is set insensitive it loses the focus
1183         if it had it.
1184
1185         * gtkcontainer.c: Insensitive widgets no longer participate in tab
1186         traversal.
1187
1188         * gtkscrolledwindow.c: The "viewport" child is now destroyed and a
1189         container class "foreach" function was written (which fixes the
1190         sensitivity bug).
1191
1192 Sat Apr  5 14:25:38 1997  Peter Mattis  <pmattis@localhost>
1193
1194         * gtkhscrollbar.c:
1195         * gtkvscrollbar.c: Fixed trough size allocation bug.
1196
1197         * gtkhscale.c:
1198         * gtkvscale.c: Fixed trough size allocation and position bug that
1199         showed up when scales were placed in notebooks.
1200
1201 Thu Mar 27 17:45:54 1997  David Mosberger-Tang  <davidm@azstarnet.com>
1202
1203         * gtk/gtkmain.c (gtk_handle_idle): Fix appending pending_idles to
1204         idle_functions so it works even when idle_functions is empty.
1205
1206 Sat Mar 15 14:15:59 1997  Peter Mattis  <pmattis@localhost>
1207
1208         * *.[ch]: Moved '*_class_init' and '*_init' function declarations
1209         for widgets into the source file as those functions no longer had
1210         to be public.
1211
1212         * gtkcheckbutton.c: Fixed redrawing of check button.
1213
1214         * gtkframe.c: Fixed redrawing of frame when the shadow type is
1215         changed.
1216
1217 Sat Mar  8 15:19:23 1997  Peter Mattis  <pmattis@localhost>
1218
1219         * gdkimage.c: Fixed a stupid bug with 'gdk_image_new' which
1220         potentially added a NULL image to "image_list" and caused problems
1221         when 'gdk_image_exit' was called.
1222
1223 Wed Mar  5 00:40:08 1997  Peter Mattis  <pmattis@localhost>
1224
1225         * gtkpreview.c: Massively changed the colormap handling used by
1226         the preview widget. Gray previews are now dithered. A single
1227         visual and colormap is shared by the color and gray previews. A
1228         GTK_PREVIEW_INFO property is installed on the root window in
1229         certain cases to allow multiple GTK programs to share the system
1230         colormap.
1231
1232 Sun Mar  2 05:43:06 1997  Peter Mattis  <pmattis@localhost>
1233
1234         * gtkcheckbutton.c: 'gtk_checkbutton_size_allocate' was allocating
1235         too much space to its children and not leaving the check button
1236         room for the focus border.
1237
1238         * gtknotebook.c: 'gtk_notebook_size_request' wasn't requesting
1239         enough space when the notebook tabs are visible.
1240
1241 Sat Mar  1 01:59:35 1997  Peter Mattis  <pmattis@localhost>
1242
1243         * gtkpreview.c: Fixed a problem with 'gtk_preview_put' when the
1244         image byte order is GDK_MSB_FIRST.
1245
1246         * gtksignal.c:
1247         * gtksignal.h: Added 'gtk_signal_connect_after' and
1248         'gtk_signal_connect_object_after' functions. These connect signal
1249         handlers which will run after the class function associated with
1250         the signal.
1251
1252         * gtkstyle.c: Fixed a stupid bug in 'gtk_style_new_from_key' that
1253         was causing twice as many styles to be created as necesary.
1254
1255         * gtkwidget.c: 'gtk_real_widget_size_allocate' erases the widgets
1256         old allocation if it has the GTK_NO_WINDOW flag set.
1257
1258         * gtkwidget.c: 'gtk_real_widget_unmap' now erases the widget if it
1259         has the GTK_NO_WINDOW flag set.
1260
1261         * gtklabel.c: Removed 'gtk_label_unmap' as similar functionality
1262         was added to gtk_real_widget_unmap.
1263
1264         * gtkbin.c: Modified 'gtk_bin_map' and 'gtk_bin_unmap' so that it
1265         erases and draws the widget if it has the GTK_NO_WINDOW flag set.
1266
1267         * gtkframe.c: Modified 'gtk_frame_size_allocate' so that it erases
1268         the old allocation.
1269
1270 Fri Feb 28 03:27:05 1997  Peter Mattis  <pmattis@localhost>
1271
1272         * gtkwindow.c: 'gtk_window_set_title' now changes the window title
1273         if the window is already realized.
1274
1275         * gtkentry.c: 'gtk_entry_set_text' was emitting both a
1276         "delete_text" and a "changed_text" signal. Modified so that it
1277         only emits a "changed_text" signal.
1278
1279         * gtkpreview.c: Modified to work correctly on systems with MSB
1280         byte order. The colormap for TRUE and DIRECT color displays is now
1281         created if the default visual is not equal to the visual we are
1282         using.
1283
1284         * gtkstyle.c: 'gtk_style_attach' and 'gtk_style_find' weren't
1285         working properly in the presence of multiple colormaps are
1286         different depth visuals.
1287
1288         * gtkcontainer.c: Massively improved focus traversal using tab and
1289         arrow keys. It now uses the layout of the widgets to determine
1290         where to move the focus to.
1291
1292 Mon Feb 24 03:24:02 1997  Peter Mattis  <pmattis@localhost>
1293
1294         * gtkmenufactory.c: Set the accelerator table field for menus when
1295         they are created.
1296
1297         * gtkmenu.c:
1298         * gtkmenu.h: Added a default accelerator table field to menus so
1299         that runtime modification of accelerator keys in menus can work
1300         better.
1301
1302         * gtkrange.c: 'gtk_range_default_{h,v}motion' had faulty logic for
1303         deciding what to do when the slider was at the edge of the
1304         trough. They previously didn't update the adjustment value event
1305         if the value wasn't what it should be when the slider was at the
1306         edge of the trough.
1307
1308         * gtkviewport.c: 'gtk_viewport_size_allocate' and
1309         'gtk_viewport_adjustment_value_changed' both had the potential for
1310         performing a divide by 0. Checks are now in place to prevent this.
1311
1312         * gtkmenu.c: 'gtk_menu_map' now makes sure the menu lies on screen
1313         if the position function is NULL.
1314
1315         * gtkentry.c: Modified selection handling. 'gtk_delete_selection'
1316         actually removes the X selection now. 'gtk_entry_destroy' removes
1317         the selection as well and relies on the change in "gdk.c" to make
1318         sure the selection event will not be sent to a non-existant
1319         window.
1320
1321         * gdk.c: Selection events are only passed on if the selection
1322         owner is not NULL.
1323
1324         * gtkstyle.c: 'gtk_style_detach' and 'gtk_style_destroy' were not
1325         destroying the black and white gc's.
1326
1327 Sun Feb 23 19:17:56 1997  Peter Mattis  <pmattis@localhost>
1328
1329         * gtkwindow.c: 'gtk_window_size_request' was setting the window
1330         hints. This was also being done in 'gtk_window_map', so the
1331         instance being done in 'gtk_window_size_request' was removed.
1332
1333 Fri Feb 21 01:04:01 1997  Peter Mattis  <pmattis@localhost>
1334
1335         * gtkwidget.c: 'gtk_widget_draw' has to use the widgets allocated
1336         position for the drawing rectangle when the widget has the
1337         GTK_NO_WINDOW flag set.
1338
1339         * gtkwidget.c: In 'gtk_widget_init' the visual and colormap were
1340         being directly compared against 'default_visual' and
1341         'default_colormap' instead of calling
1342         'gtk_widget_get_default_{visual,colormap}'.
1343
1344         * gdkrectangle.c: Amazing! There was a bug in the
1345         'gtk_rectangle_intersect' logic. Its been there for near eternity
1346         and I never noticed.
1347
1348         * gtkpreview.c:
1349         * gtkpreview.h: Created preview widget which allows drawing to an
1350         rgb or grayscale buffer which is automatically displayed on the
1351         screen. Performs dithering as necessary.
1352
1353 Thu Feb 20 20:33:21 1997  Peter Mattis  <pmattis@localhost>
1354
1355         * gdkwindow.c: Modified the logic in 'gdk_window_new' which
1356         determined when to add a window to the WM_COLORMAP_WINDOWS
1357         property.
1358
1359 Wed Feb 19 19:55:29 1997  Peter Mattis  <pmattis@localhost>
1360
1361         * gtkruler.c: 'gtk_ruler_make_pixmap' was always destroying the
1362         old backing store and creating a new one even when it would create
1363         a new one of exactly the same size as the old one.
1364
1365 Tue Feb 18 18:32:10 1997  Peter Mattis  <pmattis@localhost>
1366
1367         * gmem.c: 'g_mem_chunk_alloc' was incorrectly modifying the mem
1368         areas free mem field when reallocating a previously freed
1369         atom. This caused a fairly severe memory leak.
1370
1371         * gtkmenushell.c: 'gtk_menu_shell_button_release' had a bug in the
1372         logic for deciding whether to initiate an X pointer grab or not
1373         when the mouse button was released. It now only initiates a grab
1374         if the mouse is released within an active menu item.
1375
1376 Fri Feb 14 00:57:40 1997  Peter Mattis  <pmattis@localhost>
1377
1378         * gtknotebook.c: Changed the look of notebook tabs slightly.
1379
1380         * gtkentry.c:
1381         * gtkentry.h: Deleting an entry widget which is holding the X
1382         selection presents some difficulties. The X selection must be
1383         released, but the widget can't be destroyed until the
1384         SELECTION_CLEAR event is received that the X server will send in
1385         response to clearing the X selection. There are probably still
1386         bugs in the current method of entry widget deletion when the X
1387         selection is held.
1388
1389         * gtkmain.c: 'gtk_propagate_event' was not properly destroying the
1390         toplevel window when receiving a key press event.
1391
1392         * gtkwidget.c: Setting a widget insensitive did not cause it to
1393         redraw. It now does.
1394
1395 Thu Feb 13 16:59:07 1997  Peter Mattis  <pmattis@localhost>
1396
1397         * gtkviewport.c: 'gtk_viewport_size_allocate' was allocating its
1398         child widget an adjusted allocation. Since the actual scrolling
1399         has handled by a subwindow this caused the child to be double
1400         scrolled. Modified to always set the child allocations origin to
1401         (0, 0).
1402
1403 Wed Feb 12 01:06:48 1997  Peter Mattis  <pmattis@localhost>
1404
1405         * gtkentry.c: Text is now centered vertically. Previously it was
1406         pushed up against the top. This problem was only evident when the
1407         widget was allocated more vertical space than it requested.
1408
1409         * gtkfilesel.c: 'gtk_file_selection_key_press' was previously only
1410         a stub for tab completion. The actual tab completion call had been
1411         left out. (Oops!)
1412
1413 Tue Feb 11 01:43:08 1997  Peter Mattis  <pmattis@localhost>
1414
1415         * gtksignal.c: 'gtk_signal_disconnect_by_data' was going into a
1416         loop and crashing. Bad logic. Fixed.
1417
1418         * gtkmain.c: An idle function which returns FALSE will be removed
1419         from the list of idle functions. This makes the functioning of
1420         idle functions and timeouts more similar.
1421
1422         * gtkentry.c: 'gtk_entry_get_text' now returns an empty string
1423         when the actual text is NULL. This allows "stupid" programs to use
1424         the value returned by 'gtk_entry_get_text' blindly (without
1425         checking to see if its NULL).
1426
1427         * gtkradiobutton.c: Modified 'gtk_radio_button_clicked' so that
1428         'gtk_toggle_button_toggled' is called _after_ the widget state is
1429         changed.
1430
1431         * gtksignal.c:
1432         * gtksignal.h: Added 'gtk_signal_name' which returns the character
1433         string name for a given signal number.
1434
1435         * gtkwidget.c: 'gtk_widget_set_parent' checks to see if the widget
1436         is now "anchored" through the parent chain to a widget which is
1437         GTK_ANCHORED. If it is, then it changes the widgets style using
1438         'gtk_rc_get_style' and recursively performs the same operation on
1439         the widgets children. This is necessary is 'gtk_rc_get_style' only
1440         works properly on "anchored" widgets.
1441
1442         * gtkwindow.c: Modified GTK_WIN_POS logic so that it is only used
1443         immediately after the window has been shown.
1444
1445         * gtkmenu.c: 'gtk_menu_key_press'. Can now change menu item
1446         accelerator keys on the fly. Why? Why not. Cool/useless feature of
1447         the day.
1448
1449         * gtkmenuitem.c: Accelerator key drawing. Somehow that never got
1450         finished. (Oops!)
1451
1452         * gtkdrawingarea.c: 'gtk_drawing_area_size_allocate' was not
1453         actually installed during 'gtk_drawing_area_class_init'. (Oops!)
1454
1455         * gtkframe.c: 'gtk_frame_size_request' fixed size requisition
1456         problem caused by unsigned arithmetic.
1457
1458         * gtkwindow.c: Modified window widget so that it only uses the
1459         widget uposition auxiliary information immediately after it has
1460         been shown. This prevents the annoying bug which can cause a
1461         uposition'ed window to jump back to its original position after
1462         the user moves it.
1463
1464         * gtkwidget.c: Need to ref and unref style in
1465         'gtk_widget_{push,pop}_style' to make sure that a style on the
1466         style stack is not destroyed.
1467
1468         * gtktogglebutton.c: 'gtk_toggle_button_set_state' now calls
1469         gtk_button_clicked to actually change the state of the
1470         button. In this way, radio buttons can now perform the appropriate
1471         actions when the toggle button state is set.
1472
1473 Mon Feb 10 00:27:39 1997  Peter Mattis  <pmattis@localhost>
1474
1475         * gtklist.c: 'gtk_list_select_item' and 'gtk_list_unselect_item'
1476         were casting a GList* variable to a a GtkWidget* variable. Bad bad
1477         bad. (Tim Janik).
1478
1479         * gtksignal.c: Modified 'gtk_signal_connect' and
1480         'gtk_signal_connect_object' to warn when a signal type cannot be
1481         found.
1482
1483 Sun Feb  9 00:15:30 1997  Peter Mattis  <pmattis@localhost>
1484
1485         * gtkoptionmenu.c:
1486         * gtkoptionmenu.h: Changed option menus back to being derived from
1487         buttons. This fixes up some screwiness with their user
1488         interaction.
1489
1490         * gtkwindow.c: Modified key press handler to support focus
1491         traversal.
1492
1493         * gtkcontainer.c:
1494         * gtkcontainer.h: Added default focus traversal back in.
1495
1496 Sat Feb  8 10:44:38 1997  Peter Mattis  <pmattis@localhost>
1497
1498         * gtkviewport.h:
1499         * gtkviewport.c: Massively sped up viewport scrolling. Used to be
1500         reallocating child's size (offset) each time a scrollbar
1501         moved. Now a subwindow is moved. All the children are moved
1502         automatically by moving the subwindow. Much much much faster.
1503
1504 Tue Feb  4 00:20:44 1997  Peter Mattis  <pmattis@localhost>
1505
1506         * gtree.c: Changed 'g_tree_node_search' to use a loop instead of
1507         recursion.
1508
1509 Mon Feb  3 11:30:03 1997  Peter Mattis  <pmattis@localhost>
1510
1511         * gtkbutton.c: Removed 'parent_destroy' global and replaced it
1512         with 'parent_class' global to reflect style used in other
1513         widgets.
1514
1515         * gtknotebook.c: Tab labels were being allocated less than their
1516         requested size.
1517
1518         * gtkrange.c:
1519         * gtkrange.h: Moved the "digits" field of scales into the range
1520         type. The adjustment value for scales is truncated to the number
1521         of visible digits instead of being left untouched.
1522
1523         * gtree.c: Fixed a bug in the AVL tree implementation. Single
1524         rotations were always being performed during insertion. It is
1525         sometimes necessary to perform a double rotation.
1526
1527         * gtklabel.c: Modified 'gtk_label_expose' to only draw the label
1528         when the allocated space is greater than or equal to the requested
1529         space.
1530
1531         * gtklabel.c: Added call to 'gtk_widget_unmap' to
1532         'gtk_label_destroy' in order for the label to redraw correctly
1533         (erase itself) when destroyed.
1534
1535         * gtklabel.c: Added 'gtk_label_unmap' call which erases the labels
1536         allocation when it gets unmapped.
1537
1538         * *.h: Removed a few remaining instances of using "class" as a
1539         parameter name. (Causes problems for C++).
1540
1541 Fri Jan 31 12:26:50 1997  Peter Mattis  <pmattis@localhost>
1542
1543         * gtkcontainer.c: 'gtk_container_enable_resize' needs to call
1544         'gtk_container_check_resize' instead of
1545         'gtk_container_need_resize'.
1546
1547         * gtkwidget.c: 'gtk_real_widget_show' now maps the widget if its
1548         parent is mapped.
1549
1550         * gtkscrolledwindow.c: Fixed size allocation when the scrollbar
1551         policy's are GTK_POLICY_AUTOMATIC. Doing it correctly is harder
1552         than I originally thought.
1553
1554         * gtklist.c: Added 'gtk_list_child_position' to determine the
1555         integer position in a list of a child. Filled in the
1556         'gtk_list_item_select' and 'gtk_list_item_unselect' stubs.
1557
1558 Thu Jan 30 16:08:06 1997  Peter Mattis  <pmattis@localhost>
1559
1560         * gmem.c: Changed the implementation of G_ALLOC_AND_FREE mem
1561         chunks. They used to allocate SIZEOF_VOID_P extra bytes per atom
1562         in order to keep track of which mem area they were allocated
1563         from. Now the mem area is determined by searching through an AVL
1564         tree of the mem areas for a mem chunk and comparing memory
1565         locations. A little slower, but makes G_ALLOC_AND_FREE mem chunks
1566         much more attractive.
1567
1568         * gtree.c: Added an AVL tree implementation to glib.
1569
1570         * gtksignal.c:
1571         * gstring.c: va_arg (arg_list, {char, short}) is
1572         invalid. Arguments passed in a variable argument list are
1573         promoted. ({char, short}->int). Seemed to work ok before under
1574         Linux. Crashed under FreeBSD.
1575
1576 Tue Jan 28 02:27:51 1997  Peter Mattis  <pmattis@localhost>
1577
1578         * gdkwindow.c: Fixed a major slowdown apparent in the file
1579         selection dialog which was caused by calling
1580         'gtk_window_add_colormap_windows' way way way too often.
1581
1582         * *.c: Many widgets called 'gtk_container_need_resize' when
1583         something internal changed which would cause the widget to grow or
1584         shrink. The assumption was made that the widget would change size
1585         and an expose event would be generated. This happens "most" of the
1586         time. But its possible for certain widgets to change size without
1587         generating expose events, or for its internal geometry to change
1588         without a change of size which would mean no expose event was
1589         generated. So a wrapper function called
1590         'gtk_container_check_resize' was created and
1591         'gtk_container_need_resize' was modified so that it returns FALSE
1592         if a resize was actually generated and TRUE if nothing
1593         changed. This allows 'gtk_container_check_resize' to initiate a
1594         'gtk_widget_size_allocate' and 'gtk_widget_draw' to emulate the
1595         expose event.
1596
1597 Sat Jan 25 14:17:44 1997  Peter Mattis  <pmattis@localhost>
1598
1599         * gtkmain.c: Fixed a bug with propogating key press events. The
1600         events were sent 2 times to the toplevel windows which caused the
1601         focus widget to be activated twice when the space bar was pressed.
1602
1603         * */configure.in:
1604         * */Makefile.am: Added support for libtool and removed the old
1605         shared library configuration craziness.
1606
1607 Fri Jan 24 12:59:22 1997  Peter Mattis  <pmattis@localhost>
1608
1609         * gtktext.c:
1610         * gtktext.h: Josh's fixes and additions to the text widget.
1611
1612         * gtkfill.c:
1613         * gtkfill.h: Filler widget useful for filling space in a
1614         table. Can specify a minimum size. Used by the canvas widget.
1615
1616         * gtknotebook.c:
1617         * gtknotebook.h: Made outline of notebook widget.
1618
1619         * gtkcanvas.c:
1620         * gtkcanvas.h: Started canvas widget. A composite of 2 rulers (w/
1621         an origin), 2 scrolllbars. Guides, grids, snap to.
1622
1623 Sun Jan 19 18:26:45 1997  Peter Mattis  <pmattis@localhost>
1624
1625         * gtkdialog.c:
1626         * gtkdialog.h: Created dialog widget which creates a standard
1627         looking dialog with buttons along the button and a separator.
1628
1629         * gtkxid.c: Generalized the window table code for looking up a gdk
1630         window based on an XID to work for any XID and a piece of
1631         data. Can now look up gdk fonts based on their XID.
1632
1633         * gtkruler.c:
1634         * gtkruler.h:
1635         * gtkhruler.c:
1636         * gtkhruler.h:
1637         * gtkvruler.c:
1638         * gtkvruler.h: Started conversion of the ruler widget.
1639
1640         * gtktext.c:
1641         * gtktext.h: Started conversion of the text widget. Scrolling
1642         doesn't work.
1643
1644         * gtkmain.c: Fixed a fairly major bug. The event widget needs to
1645         be in a call for the entire duration of handling an event. Not
1646         just for when the event widget itself is handling the event.
1647
1648         * gtkfilesel.c: Fixed up some bugs with resizing.
1649
1650 Fri Jan 10 14:18:03 1997  Peter Mattis  <pmattis@localhost>
1651
1652         * gtkwidget.c:
1653         * gtkwidget.h:
1654         * gtkentry.c:
1655         * gtkentry.h: Support for selections.
1656
1657         * gdkselection.c:
1658         * gdk.c:
1659         * gdktypes.h:
1660         * gdk.h: Gdk support for X selections. Currently only text
1661         selections are supported.
1662
1663         * gtksignal.c: Fixed a major bug which occurred when destroying an
1664         object. Memory was being written to after it was freed.
1665
1666         * gtkfilesel.c:
1667         * gtkfilesel.h: Hooked up more functionality to the file selection
1668         dialog.
1669
1670 Wed Jan  8 18:13:53 1997  Peter Mattis  <pmattis@localhost>
1671
1672         * gtkfilesel.c:
1673         * gtkfilesel.h: Mostly converted old file selection dialog
1674         widget. The widget is derived from the GtkWindow class and is
1675         quite a bit simpler in the widget code.
1676
1677         * gtkwidget.c: Fixed 'gtk_widget_grab_focus' and
1678         'gtk_widget_grab_default' to check that the toplevel widget is a
1679         type of window (which includes classes derived from windows).
1680
1681 Tue Jan  7 01:12:32 1997  Peter Mattis  <pmattis@localhost>
1682
1683         * gtkwindow.c: Was calling 'gtk_window_resize' twice in a
1684         row...why?
1685
1686         * gtksignal.c:
1687         * gtksignal.h:
1688         * *.c: Changed 'gtk_signal_new' so that the class function that is
1689         called when the signal is emitted can be called either before,
1690         after or both before and after the calling of any signal
1691         handlers.
1692
1693         * gtkobject.c:
1694         * gtkobject.h: Added 'object_data' mechanism for storing data
1695         associated with a character string key in objects. Removed
1696         'user_data' field of objects and changed
1697         'gtk_object_{get,set}_user_data' to use the object data
1698         mechanism. Removed 'handlers' field of objects.
1699
1700         * gtkwidget.c:
1701         * gtkwidget.h:
1702         * gtkwindow.c: Modified aux info mechanism to use object data
1703         mechanism.
1704
1705         * gtksignal.c: Modified signal mechanism to use object data
1706         mechanism instead of 'handlers' field.
1707
1708
1709 Mon Jan  6 15:10:16 1997  Peter Mattis  <pmattis@localhost>
1710
1711         * gtkmenushell.c: Fixed up button press handling so as to conform
1712         more closely to that used by Motif.
1713
1714 Wed Jan  1 21:27:17 1997  Peter Mattis  <pmattis@localhost>
1715
1716         * gtkmenu.c:
1717         * gtkmenu.h:
1718         * gtkmenubar.c:
1719         * gtkmenubar.h:
1720         * gtkmenushell.c:
1721         * gtkmenushell.h: Reorganization of menu-ing code so that code
1722         duplication is reduced. The menu shell now contains most of the
1723         code for menu-ing interaction while menus and menubars simply layout
1724         their child menu items in the appropriate place.
1725
1726 Sun Dec 29 17:48:18 1996  Peter Mattis  <pmattis@localhost>
1727
1728         * gtkmenu.c:
1729         * gtkmenubar.c:
1730         * gtkmenuitem.h:
1731         * gtkmenuitem.c: Modifications so that menu item accelerators and
1732         the submenu indicator are drawn correctly and the correct amount
1733         of space is allocated.
1734
1735 Sat Dec 28 00:32:13 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1736
1737         * gtkmenufactory.h:
1738         * gtkmenufactory.c: Started menu factories as an easy method to
1739         create and manipulate menus.
1740
1741 Fri Dec 27 13:17:34 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1742
1743         * gtkmenu.c:
1744         * gtkmenu.h:
1745         * gtkmenubar.c:
1746         * gtkmenubar.h:
1747         * gtkmenuitem.c:
1748         * gtkmenuitem.h:
1749         * gtkmenushell.c:
1750         * gtkmenushell.h: Implemented basic menu functionality. Menubars
1751         and popup menus work. Submenus work. (Much left to be done).
1752
1753 Wed Dec 18 15:27:05 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1754
1755         * gtktypeutils.h:
1756         * gtktypeutils.c: Added 'gtk_type_from_name' which returns a type
1757         identifier given a type name. Implemented using a second hash
1758         table keyed by type names.
1759
1760         * gtkbutton.c:
1761         * gtktogglebutton.c: Fixed very small messed-up drawing bug when a
1762         button loses its focus.
1763
1764         * gtkwidget.h:
1765         * gtkwidget.c:
1766         * gtkbutton.c:
1767         * gtkwindow.c: Added default button handling. Default buttons now
1768         draw correctly and pressing return or enter causes the default
1769         button (if one exists) to be activated.
1770
1771 Tue Dec 17 19:32:21 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1772
1773         * gtkhscale.c:
1774         * gtkvscale.c: Overrode 'draw_slider' method of ranges in order to
1775         draw the slider of scales with a line in them so as to be closer
1776         to the Motif look-and-feel.
1777
1778         * gtkwindow.c: Modified 'gtk_window_focus_in_event' so that focus
1779         in events are only handled when the window is visible. Fixes a bug
1780         where spurious focus in events get sent when a window is being
1781         hidden.
1782
1783         * gtkwidget.h: Added 'activate_signal' field to the GtkWidgetClass
1784         structure. Added 'gtk_widget_activate' call to emit the activate
1785         signal for a widget if it is non-zero.
1786
1787 Tue Dec 10 15:59:45 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1788
1789         * gtkwidget.c: 'gtk_widget_set_name' oops in strdup'ing the old
1790         "widget->name" instead of the new one we are setting.
1791
1792         * gtkrc.c: 'gtk_rc_widget_path' changed to use
1793         'gtk_widget_get_name' instead of accessing the "widget->name"
1794         field directly.
1795
1796         * gtkwidget.c: Added 'gtk_widget_get_name' function which returns
1797         the widgets name if it exists and the widgets type name if it does
1798         not.
1799
1800         * gtkcheckbutton.c: Added 'gtk_check_button_draw'
1801         function. Modified 'gtk_check_button_expose' to pass an expose
1802         event to child instead of callings its draw function.
1803
1804         * gtkentry.c: 'gtk_entry_draw_text' why was "+1" being added to
1805         the font->ascent to calculate the font position? This was wrong
1806         and caused some characters in fonts to be clipped. (Notably "g").
1807
1808         * gtkentry.c: 'gtk_entry_realize' specify GTK_BUTTON1_MOTION_MASK
1809         and GTK_POINTER_MOTION_HINT_MASK for _both_ windows.
1810
1811         * gtkmain.c: 'gtk_propagate_event' needs to set the GTK_IN_CALL
1812         flag for the object before calling 'gtk_widget_event' and needs to
1813         destroy the object if necessary after 'gtk_widget_event' returns.
1814
1815         * gtkradiobutton.c: 'gtk_radio_button_clicked' needs to call
1816         'gtk_toggle_button_toggled' when the currently active button is
1817         toggled.
1818
1819         * gtkwidget.c: 'gtk_real_widget_hide' needs to call
1820         'gtk_widget_unmap' if the widget is currently mapped.
1821
1822         * gtkwindow.c: Prevent automatic resizing after the user has
1823         specified a new window size. Add 'handling_resize' flag to
1824         windows.
1825
1826         * gtkscrolledwindow.c: Implement the GTK_POLICY_AUTOMATIC
1827         scrollbar policy. Need to connect to the adjustments 'changed'
1828         signal and notice when the scrollbars aren't in use.
1829
1830         * gtkcontainer.c: 'gtk_container_init' must set 'auto_resize' and
1831         'need_resize' fields to TRUE and FALSE respectively.
1832
1833         * gtkwidget.c: 'gtk_widget_set_parent' must all set a widgets state
1834         to its parents state.
1835
1836 Sun Dec  1 01:31:01 1996  Peter Mattis  <pmattis@charnley.HIP.Berkeley.EDU>
1837
1838         * Started ChangeLog